目錄:
一.while循環與until循環
二.循環控制語句continue break shift
三.特殊用法
一.while循環與until循環
-
1.while循環
while CONDITION; do 循環體 done
- CONDITION:循環控制條件;進入循環之前,先做一次判 斷;每一次循環之後會再次做判斷;條件爲真,則執行 一次循環;直到條件測試狀態爲假終止循環。
-
2.until
until CONDITION; do 循環體 done
until循環與while循環相反CONDITION:循環控制條件爲假,則執行 一次循環;直到條件測試狀態爲真終止循環。
例子:顯示1-5的數字#!/bin/bash n=0 while [ $n -lt 5 ];do let n=$n+1 echo $n done
-
until寫法
#!/bin/bash n=0 until [ $n -eq 5 ];do let n=$n+1 echo $n done
二.循環控制語句
continue break shift
** 1.continue[N] :提前結束第N層的本輪循環,而直接進入下一 輪判斷;最內層爲第1層while CONDTIITON1; do
CMD1 ...
if CONDITION2; then
continue
fi
CMDn
...
done -
2.break [N]:提前結束第N層循環,最內層爲第1層
while CONDTIITON1; do
CMD1 ...
if CONDITION2; then
break
fi
CMDn
...
done我們對第一個例子做點修改 在其中加上continue和break
#!/bin/bash n=0 while [ $n -lt 5 ];do let n=$n+1 if [ $n -eq 3 ];then continue fi echo $n done
-
加入continue時輸出結果爲1245
#!/bin/bash n=0 while [ $n -lt 5 ];do let n=$n+1 if [ $n -eq 3 ];then break fi echo $n done
-
加入break的輸出結果爲12
由此可以總結出兩者的區別爲continue是結束當輪循環
break是結束當層循環
3.shift [n] 用於將參量列表 list 左移指定次數,缺省爲左移一次。 參量列表 list 一旦被移動,最左端的那個參數就從列表中刪除。#!/bin/bash while [ $# -ne 0 ] ;do echo $1 shift done 輸入1 2 3 4 5 每次顯示第一個數 [root@centos6 app]# ./while.sh 1 2 3 4 5 1 2 3 4 5
三.特殊用法
while read line; do
循環體
done < /PATH/FROM/SOMEFILE
(遍歷文件的每一行) - 例子
-
查看一個文件
[root@centos6 app]# cat 123.txt 1 2 3 4 5
-
編寫腳本
#!/bin/bash while read line ;do n=$[$line+1] echo $n done</app/123.txt 把所取的變量都加1 執行腳本輸出結果爲 [root@centos6 app]# ./while.sh 2 3 4 5 6