循環可用來使程序的某些部分重復,shell為循環提供了while/until/for命令。
while命令的語法是:
while commands;do commands;done
while 計算一系列命令的退出狀態。只要退出狀態為零,它就執行循環內的命令。
bash 為while循環提供了兩個內部命令,它們可以用來在循環內部控制程序流程。這個break 命令立即終止一個循環,且程序繼續執行循環之后的語句。這個continue 命導致程序跳過循環中剩余的語句,且程序繼續執行下一次循環。因為循環自己永遠不會結束,所以由我們編程時在恰當的時候提供某種方法來跳出循環。continue 命令被包含在其它選擇動作的末尾,為的是更加高效執行。通過使用continue命令,當一個選項確定后,程序會跳過不需要的代碼。
until 命令與while 非常相似,除了當遇到一個非零退出狀態的時候,while 退出循環,而until 不退出。一個until 循環會繼續執行直到它接受了一個退出狀態零,會在正確的時間終止循環。
for 循環不同于while和until 循環,它提供了一種處理序列的方式,在編程時非常有用。
for循環格式有兩種:
1.for 變量[in words]; do
commands
done
例如:6016@go:~$ for i in A B C D; do echo $i;done
A
B
C
D
每次循環執行的時候,就會有一個單詞賦值給變量i。在循環體內,我們有一個echo 命令會顯示i 變量的值,來演示賦值結果。正如while 和until 循環,done 關鍵字會關閉循環。for 命令真正強大的功能是我們可以通過許多有趣的方式創建words 列表。例如,通過花括號展開:for i in {A..D}或者路徑名展開,或用命令替換。for 循環使用的變量可以是任意有效的變量,i 是最常用的一個,其次是j 和k。
2.C語言格式
for (( expression1; expression2; expression3 )); do
commands
done
其中expression1,expression2,和expression3 都是算術表達式,commands 是每次循環迭代時要執行的命令。
例如:腳本為:
!/bin/bash
simple_counter : demo of C style for command
for (( i=0; i<5; i=i+1 )); do
echo $i
done
輸出為:
6016@go:~$ simple_counter
0
1
2
3
4
5
C 語言格式的for 循環對于需要一個數字序列的情況很有用處。
毫無疑問,流程控制的while、until和for循環為系統命令的執行提供了很大的方便。
學習了linux課程一個學期了,整體知識層面的也差不多告一段落,無疑的是linux拓展了我的知識面,學習使用了第二個系統,感受到了科技的魅力。