while的基本格式
while test command
do
other commands
done
while 指令中定義的test command和if-then語句的格式一模一樣。可以使用任何普通的bash shell指令,或者用test指令進行條件測試,比如測試變量值。
while指令的關鍵在于所制定的test command 的退出狀态嗎必須随着玄幻中運作的指令而改變。如果推出狀态碼不發生變化,while循環将一直不停的進行下去。
最常見的test command的用法就是用方括号來檢查循環指令中用到的shell變量的值
[[email protected] robin]# vim while.sh
#! /bin/bash
# while command test
var1=10
while [ $var1 -gt 0 ]
do
echo $var1
var1=$[ $var1 - 1 ]
done
[[email protected] robin]# ./while.sh
10
9
8
7
6
5
4
3
2
1
while指令定義了每次疊代時檢查的測試條件:
while [ $var1 -gt 0 ]
隻要測試條件成立,while指令就會不停地循環執行定義好的指令。在這些指令中,測試條件用到的變量必須修改,否則就會陷入無限循環。在本例中,我們用shell算數來講變量值減一
var1=$[ $var1 - 1 ]
while循環會在測試條件不再成立時停止
附錄:
【Linux】條件判斷eq、ne、gt、lt、ge、le
整數比較:
-eq(equal) 相等
-ne(inequality) 不相等
-gt(greater than) 大于
-lt(less than) 小于
-ge(greater equal) 大于或等于
-le(less equal) 小于或等于