shell編程學習筆記(十一):Shell中的while/until循環

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的參數聲明:循環

  • +/-  "-"可用來指定變量的屬性,"+"則是取消變量所設的屬性。
  • -f  僅顯示函數。
  • r  將變量設置爲只讀。
  • x  指定的變量會成爲環境變量,可供shell之外的程序來使用。
  • i  [設置值]能夠是數值,字符串或運算式。

 

until循環恰好跟while循環相反,是指不知足條件時,進行循環

 

示例:

#! /bin/sh
declare -i index=10
until [ $index -lt 0 ]
do
echo $index
index=index-1;
done

以上示例執行時,會從10開始循環輸出,輸出到0,結束。

相關文章
相關標籤/搜索