2012-06-09 9 views
3
i=0 
for f in `awk '{print $1}' config.list` 
do 
    echo "i value is $i" 
    if ["$i" = "0"] 
    then 
     echo "here" 
     i=$((i+1)) 
     continue 
    fi 
    arr[i]=$f 
    i=$((i+1)) 
done 

在上面的bash腳本語句錯誤我正在那裏我已經使用了if語句,它看起來像這樣如果在bash

./script.sh: line 5: [0: command not found 

錯誤請點我什麼可能是我的錯誤。

+2

@jedwards,單個等號對於字符串相等比較是正確的。用'[[​​''雙等號表示模式匹配。你可能會想到另一種語言。 –

+0

'((i + = 1))'或'((i ++))' –

+0

@glennjackman,[我意識到'='和'=='是同義詞](http://tldp.org/LDP/abs/ html/comparison-ops.html),我的聲明更多的是可讀性和可維護性。傳統上'='是用於賦值的,只要有可能就應該這樣保留(例如這種情況)。 – jedwards

回答

8

使用if [ "$i" = "0" ]

在bash,你需要大約[]空格if條件

+0

謝謝。我現在明白了。 – monucool

4

您收到此錯誤,因爲猛砸if語句要求各地操作數的加空格:

if [ "$i" = "0" ] 
+2

另外:它需要在滿月時犧牲一隻山羊。但主要是空間。 – pyb