shell中也能夠實現相似java的while循環java
while循環是指知足條件時,進行循環shell
示例:函數
1 #! /bin/sh 2 index=10 3 while [ $index -gt 0 ] 4 do 5 index=$((index-1)); 6 echo $index 7 done
while循環以whille開始,循環體以do開始,以done結束spa
注意第5行的代碼,表達式index-1外面添加了$(()),若是不添加$(())的話,會報錯,由於這裏index是字符串,獲得的結果不是9,而是10-1code
第5行的index-1也能夠寫成--index,這個跟java語言一致。blog
我把上面的代碼稍作修改:字符串
#! /bin/sh index=0 while [ $index -gt 0 ] do index=$((index-1)); echo $index done
執行這段代碼並不會輸入任何內容,說明必須知足條件纔會執行,不存在循環第1條時一定會執行的狀況class
爲了運算index-1,上面使用了$(()),否則只會當字符串來處理,固然了,能夠使用declare -i index=10直接把index聲明爲總體:變量
#! /bin/sh declare -i index=10 while [ $index -gt 0 ] do index=index-1; echo $index done
declare的參數聲明:循環
until循環恰好跟while循環相反,是指不知足條件時,進行循環
示例:
#! /bin/sh declare -i index=10 until [ $index -lt 0 ] do echo $index index=index-1; done
以上示例執行時,會從10開始循環輸出,輸出到0,結束。