2
循環時,我有這樣的文件:「)語法錯誤:無效的算術運算符(錯誤標記爲」具有陣列
<Overall>3
<Overall>1
<Overall>4
<Overall>5
...
我試着整體標籤後讀的數字,把它們放在一個數組並與他們做的工作後,添加結果總
array=($(grep '<Overall>' "$file" | cut -d'>' -f 2))
total=0
for each in "${array[@]}"
do
total+=$(awk -v awkEach="${array[$each]}" 'BEGIN{print (awkEach-4.78)^2}')
done
,但我得到:「)語法錯誤:無效的算術運算符(錯誤標記爲」
我讀了所有類似的問題並嘗試了不同的東西,但似乎沒有任何工作。
我不知道這是否是你唯一的問題,但你需要'聲明-i總= 0'如果你想使用'+ =' (())'和'$(())'等算術表達式之外的運算符。 – Fred
副本說明發布錯誤的原因,但它不是腳本的唯一問題。您可以使用下面發佈的更簡單的解決方案,或者修復您的問題,使用'total = $(awk -v total =「$ total」-v awkEach =「$ each」'BEGIN {print total +(awkEach-4.78)^ 2} ''而不是1.因爲循環中的bash循環超過值,而不是索引,2. bash不能用小數添加數字。 –