shell迴圈控制
通過建立迴圈以及用迴圈來完成不同的任務。有時候你需要停止迴圈或跳出迴圈迭代。
在本教程中你將學到以下語句用於控制 shell 迴圈:
break 語句
continue 語句
無限迴圈
所有迴圈都有乙個有限的生命週期。當條件為假或真時它們將跳出迴圈,這取決於這個迴圈。
乙個迴圈可能會由於未匹配到適合得條件而無限執行。乙個永遠執行沒有終止的迴圈會執行無數次。因此,這種迴圈被稱為無限迴圈。
這是乙個使用 while 迴圈顯示數字 0 到 9 的簡單的例子:
#!/bin/sh
a=10
while [ $a -ge 10 ]
do echo $a
a=`expr $a + 1`
done
這個迴圈將永遠持續下去,因為 a 總是大於或等於 10,它永遠不會小於 10。
break 語句
所有在 break 語句之前得語句執行結束後執行 break 語句,break 語句用於跳出整個迴圈。然後執行迴圈體後面的**。然後在迴圈結束後執行接下來的**。
以下 break 語句將用於跳出乙個迴圈:
break
break 語句也可以使用這種格式來退出巢狀迴圈式:
break n
在這裡 n 指定封閉迴圈執行的次數然後退出迴圈。
這裡是乙個簡單的例子,用來說明只要 a 變成 5 迴圈將終止:
#!/bin/sh
a=0
while [ $a -lt 10 ]
do echo $a
if [ $a -eq 5 ]
then
break
fia=`expr $a + 1`
done
這會產生以下結果:01
2345
這裡是乙個簡單的巢狀 for 迴圈的例子。如果 var1 等於 var2 以及 var2 等於 0 ,則這個指令碼將跳出這個雙重迴圈:
#!/bin/sh
for var1 in 1 2 3
do for var2 in 0 5
doif [ $var1 -eq 2 -a $var2 -eq 0 ]
then
break 2
else
echo "$var1 $var2"
fidone
done
這會產生以下結果。在內迴圈中,有乙個 break 命令,其引數為 2。這表明,你應該打破外迴圈和內迴圈才能滿足條件。
1 01 5
continue 語句類似於 break 命令,二者不同之處在於,continue 語句用語結束當前迴圈,能引起當前迴圈的迭代的退出,而不是整個迴圈。
這個語句在當程式發生了錯誤,但你想執行下一次迴圈的時候是非常有用的。
continue
正如 break 語句,乙個整型引數可以傳遞給 continue 命令以從巢狀迴圈中跳過命令。
continue n
在這裡 n 指定封閉迴圈執行的次數然後進入下一次迴圈。
使用 continue 語句的迴圈,它返回 continue 語句並且開始處理下乙個語句:
#!/bin/sh
nums="1 2 3 4 5 6 7"
for num in $nums
do q=`expr $num % 2`
if [ $q -eq 0 ]
then
echo "number is an even number!!"
continue
fiecho "found odd number"
done
這會產生以下結果:
found odd number
number is an even number!!
found odd number
number is an even number!!
found odd number
number is an even number!!
found odd number
for迴圈控制
今天回來有點晚,所以可能編譯有點急,希望大家諒解吧!今天來學學for迴圈和do while迴圈吧!do while迴圈 1.do while迴圈結構.無論如何do while是1種迴圈結構.所以它的作用 仍然是 將1段 進行反覆不停的執行指定的次數.一樣是來做迴圈的事情.2.語法 do while ...
UNIX Shell 程式設計 1
unix shell 程式設計 1 unix只能識別3種基本的檔案型別 普通檔案 目錄檔案和特殊檔案。普通檔案 any file on the system that contains data,test,program instructions,or just about anything els...
UNIX Shell 程式設計 2
unix shell 程式設計 2 字元匹配 星號 匹配0個以上的字元 而問號 則匹配1個字元。如 ls a z 0 9 表示顯示檔名以小寫字母開始,且以數字結尾的檔案列表。輸出重定向 命令的輸出一般是提交到標準輸出裝置,可以轉向到檔案內,這叫輸出重定向。在有標準輸出的命令後,新增 file符號後,...