循環(huán)是一個(gè)強(qiáng)大的編程工具,可以使您能夠重復(fù)執(zhí)行一系列命令。針對(duì) Shell 程序員,有 4 種循環(huán)類型:
根據(jù)不同的情況使用不同的循環(huán)。例如只要給定條件仍然是 true,while 循環(huán)將執(zhí)行給定的命令。而 until 循環(huán)是直到給定的條件變成 true,才會(huì)執(zhí)行。
一旦你有了良好的編程實(shí)踐,你就會(huì)開(kāi)始根據(jù)情況使用適當(dāng)?shù)难h(huán)。while 循環(huán)和 for 循環(huán)在大多數(shù)其他編程語(yǔ)言如 C、C++ 和 PERL 等中都有實(shí)現(xiàn)。
所有的循環(huán)都支持嵌套的概念,這意味著可以將一個(gè)循環(huán)放到另一個(gè)相似或不同的循環(huán)中。這個(gè)嵌套可以根據(jù)您的需求高達(dá)無(wú)限次。
下面是一個(gè)嵌套 while 循環(huán)的例子,基于編程的要求,其他循環(huán)類型也可以以類似的方式嵌套:
可以使用 while 循環(huán)作為另一個(gè) while 循環(huán)體的一部分。
while command1 ; # this is loop1, the outer loop
do
Statement(s) to be executed if command1 is true
while command2 ; # this is loop2, the inner loop
do
Statement(s) to be executed if command2 is true
done
Statement(s) to be executed if command1 is true
done
下面是循環(huán)嵌套的一個(gè)簡(jiǎn)單例子,在循環(huán)內(nèi)部添加另一個(gè)倒計(jì)時(shí)循環(huán),用來(lái)數(shù)到九:
#!/bin/sh
a=0
while [ "$a" -lt 10 ]# this is loop1
do
b="$a"
while [ "$b" -ge 0 ] # this is loop2
do
echo -n "$b "
b=`expr $b - 1`
done
echo
a=`expr $a + 1`
done
這將產(chǎn)生以下結(jié)果。重要的是要注意 echo -n 是如何工作的。這里 -n
選項(xiàng)讓輸出避免了打印新行字符。
0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
5 4 3 2 1 0
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0
更多建議: