2014-02-12 109 views
1

在bash腳本中,while循環應該打印1到4的數字。bash中的循環條件

但是這一個是作爲一個無限循環。

COUNT=1 

while [ $COUNT < 5 ]; 
do 
    echo $COUNT 
    COUNT=$(($COUNT+1)) 
done 

在條件或語法中是否存在任何錯誤? (我想是這樣......)

回答

2

使用-lt代替<

COUNT=1; while [ $COUNT -lt 5 ]; do echo $COUNT; COUNT=$(($COUNT+1)); done 
1 
2 
3 
4 

[ BASH語法不承認>, <, <=, >=等運營商。檢查man test

更妙的是((and))使用運算處理:

COUNT=1; while ((COUNT < 5)); do echo $COUNT; ((COUNT++)); done 

或使用for loop

for ((COUNT=1; COUNT<5; COUNT++)); do echo $COUNT; done 
+0

接受......是的,這將解決問題,什麼是錯的我的? –

+0

查看更新的說明。 – anubhava

+0

讓我知道你是否需要進一步澄清。 – anubhava