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