2015-02-07 20 views
0

不得不問這裏,因爲無法在網絡上找到任何答案...bash的數值數組提取號碼,添加到VAR

我已經收錄慶典陣列{$x[$i]}和需要做的提取數量,並添加它到$sum,但它不起作用。 錯誤代碼:

#!/bin/bash 
declare -a x 

x[0]=1 
x[1]=2 
x[2]=3 
x[3]=4 
x[4]=5 

繼將無法正常工作

$SUM=$((SUM+{$x[0])) 
$SUM=$((SUM+{$x[1])) 
$SUM=$((SUM+{$x[2])) 

echo $SUM 

請幫助!

+1

在腳本中不要用戶大寫變量名:所以它改變。如果你不小心,最終會覆蓋一個shell內部變量,例如'$ HOME'或'$ PATH'在某個點。 – 2015-02-07 16:20:40

回答

0

你有額外的大括號和$存取數組元素,刪除它。

SUM=$((SUM+{$x[0])) 

SUM=$((SUM+x[0])) 
+0

謝謝!有效 – 2015-02-09 14:32:37

0

你有幾個問題。當您分配一個變量時,不要在變量被分配之前放置$。其次,你錯過了關於數組引用的關閉}。三,{來到$。它應該是:

SUM=$((SUM+${x[0]})) 
+1

或者,您可以在算術上下文中完全刪除'$ {}'。 – 2015-02-07 16:19:18

+0

你可以在''''='('sum + = x [0])''中使用'+ ='' – rici 2015-02-07 19:39:26