我試圖創建程序來讀取每一行並計算每一行的平均值並存入數組...例如,程序將讀取第一行,將所有數字和除以24計算將存儲到Avg_list [1]中的平均值。 當我嘗試運行該程序時,遇到以下錯誤,我不知道爲什麼它不起作用......有人可以識別此問題嗎?計算每一行的平均值並保存到數組中
代碼:KSH中
c=0
while read -r line ; do
v=$line
set -- $v ((g=($2+$3+$4+$5+$6+$7+$8+$9+$10+$11+$12+$13+$14+$15+$16+$17+$18+$19+$20+$21+$22+$23+$24+$25+$26)/24))
echo $g
Avg_list[${c}]=$g
((c=c+1))
done < daily.txt
daily.txt
CPU 55 54 54 54 54 54 54 54 54 54 54 54 54 54 54 55 54 54 55 56 57 54 57 54
CPEAK 56 56 57 55 58 56 56 56 57 55 60 56 55 56 55 56 58 55 57 56 63 56 72 57
RAM 97 97 97 97 97 96 96 96 96 96 96 93 91 89 86 84 90 90 95 97 97 97 97 97
RPEAK 97 97 97 97 97 97 96 96 96 96 96 96 92 90 91 81 94 89 97 97 97 97 97 97
錯誤注:
while read -r line ; do
v=$line
set -- $v
((g=($2+$3+$4+$5+$6+$7+$8+$9+$10+$11+$12+$13+$14+$15+$16+$17+$18+$19+$20+$21+$22+$23+$24+$25+$26)/24))
echo $g
Avg_list[${c}]=$g
((c=c+1))
done < daily.txt
+ 0< daily.txt
+ read -r line
+ v=CPU 54 54 54 54 54 54 54 54 54 54 54 54 54 54 55 54 54 55 56 57 54 57 54 54
+ set -- CPU 54 54 54 54 54 54 54 54 54 54 54 54 54 54 55 54 54 55 56 57 54 57 54 54
+ ((g=(54+54+54+54+54+54+54+54+CPU0+CPU1+CPU2+CPU3+CPU4+CPU5+CPU6+CPU7+CPU8+CPU9+540+541+542+543+544+545+546)/24))
PerformanceAM.sh[21]: g=(54+54+54+54+54+54+54+54+CPU0+CPU1+CPU2+CPU3+CPU4+CPU5+CPU6+CPU7+CPU8+CPU9+540+541+542+543+544+545+546)/24: 0403-009 The specified number is not valid for this command.
編輯
while read -r line ; do
v=$line
set -- $v
((g=${2}+${3}+${4}+${5}+${6}+${7}+${8}+${9}+${10}+${11}+${12}+${13}+${14}+${15}+${16}+${17}+${18}+${19}+${20}+${21}+${22}+${23}+${24}+${25}+${26})/24))
echo $g
Avg_list[${c}]=$g
((c=c+1))
done < daily.txt
新錯誤:
while read -r line; v = $ line set - $ v ((g = $ {2} + $ {3} + $ {4} + $ {5} + $ {6} + $ {7} + $ {8 } + $ {9} + $ {10} + $ {11} + $ {12} + $ {13} + $ {14} + $ {15} + $ {16} + $ {17} + $ {18 } + $ {19} + $ {20} + $ {21} + $ {22} + $ {23} + $ {24} + $ {25} + $ {26})/ 24)PerformanceAM.sh [18 ]:0403-057第21行的語法錯誤:不需要`/ 24'。
感謝您的建議!當我試圖用托架我得到這個錯誤......現在我更糊塗了....好像它不收集數字在所有...
您期待什麼輸出?我修改了你的代碼,我得到了:'++++++++ 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 + 1 + 2 + 3 + 4 + 5+ 6 55 + 54 + 54 + 54 + 54 + 54 + 54 + 54 + CPU0 + CPU1 + CPU2 + CPU3 + CPU4 + CPU5 + CPU6 + CPU7 + CPU8 + CPU9 + 550 + 551 + 552 + 553 + 554 + 555 + 556 56 + 56 + 57 + 55 + 58 + 56 + 56 + 56 + CPEAK0 + CPEAK1 + CPEAK2 + CPEAK3 + CPEAK4 + CPEAK5 + CPEAK6 + CPEAK7 + CPEAK8 + CPEAK9 + 560 + 561 + 562 + 563 + 564 + 565 + 566' – Skyte
舊的ksh可能支持或不支持$ 10作爲「裸」變量名,嘗試編輯爲$ {10},$ {11},...祝您好運。 – shellter
你似乎缺少一個'('''''之前''':'((g = $ {2} ...',這可能是問題 – doubleDown