新聞中心

肥東網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
Shell while 循環(huán)的用法如下:
while condition
do
statements
done
condition表示判斷條件,
statements表示要執(zhí)行的語(yǔ)句(可以只有一條,也可以有多條),
do和
done都是 Shell 中的關(guān)鍵字。
while 循環(huán)的執(zhí)行流程為:
- 先對(duì) condition 進(jìn)行判斷,如果該條件成立,就進(jìn)入循環(huán),執(zhí)行 while 循環(huán)體中的語(yǔ)句,也就是 do 和 done 之間的語(yǔ)句。這樣就完成了一次循環(huán)。
- 每一次執(zhí)行到 done 的時(shí)候都會(huì)重新判斷 condition 是否成立,如果成立,就進(jìn)入下一次循環(huán),繼續(xù)執(zhí)行 do 和 done 之間的語(yǔ)句,如果不成立,就結(jié)束整個(gè) while 循環(huán),執(zhí)行 done 后面的其它 Shell 代碼。
- 如果一開始 condition 就不成立,那么程序就不會(huì)進(jìn)入循環(huán)體,do 和 done 之間的語(yǔ)句就沒(méi)有執(zhí)行的機(jī)會(huì)。
注意,在 while 循環(huán)體中必須有相應(yīng)的語(yǔ)句使得 condition 越來(lái)越趨近于“不成立”,只有這樣才能最終退出循環(huán),否則 while 就成了死循環(huán),會(huì)一直執(zhí)行下去,永無(wú)休止。
while 語(yǔ)句和 if else 語(yǔ)句中的 condition 用法都是一樣的,你可以使用 test 或 [] 命令,也可以使用 (()) 或 [[]],遺忘的讀者請(qǐng)猛擊下面的鏈接回顧:
- Shell if else
- Shell退出狀態(tài)
- Shell test命令
- Shell [[]]
while 循環(huán)舉例
【實(shí)例1】計(jì)算從 1 加到 100 的和。
#!/bin/bash
i=1
sum=0
while ((i <= 100))
do
((sum += i))
((i++))
done
echo "The sum is: $sum"
運(yùn)行結(jié)果:
The sum is: 5050
在 while 循環(huán)中,只要判斷條件成立,循環(huán)就會(huì)執(zhí)行。對(duì)于這段代碼,只要變量 i 的值小于等于 100,循環(huán)就會(huì)繼續(xù)。每次循環(huán)給變量 sum 加上變量 i 的值,然后再給變量 i 加 1,直到變量 i 的值大于 100,循環(huán)才會(huì)停止。
i++語(yǔ)句使得 i 的值逐步增大,讓判斷條件越來(lái)越趨近于“不成立”,最終退出循環(huán)。
對(duì)上面的例子進(jìn)行改進(jìn),計(jì)算從 m 加到 n 的值。
#!/bin/bash
read m
read n
sum=0
while ((m <= n))
do
((sum += m))
((m++))
done
echo "The sum is: $sum"
運(yùn)行結(jié)果:
1↙
100↙
The sum is: 5050
【實(shí)例2】實(shí)現(xiàn)一個(gè)簡(jiǎn)單的加法計(jì)算器,用戶每行輸入一個(gè)數(shù)字,計(jì)算所有數(shù)字的和。
#!/bin/bash
sum=0
echo "請(qǐng)輸入您要計(jì)算的數(shù)字,按 Ctrl+D 組合鍵結(jié)束讀取"
while read n
do
((sum += n))
done
echo "The sum is: $sum"
運(yùn)行結(jié)果:
12↙
33↙
454↙
6767↙
1↙
2↙
The sum is: 7269
在終端中讀取數(shù)據(jù),可以等價(jià)為在文件中讀取數(shù)據(jù),按下 Ctrl+D 組合鍵表示讀取到文件流的末尾,此時(shí) read 就會(huì)讀取失敗,得到一個(gè)非 0 值的退出狀態(tài),從而導(dǎo)致判斷條件不成立,結(jié)束循環(huán)。
網(wǎng)站標(biāo)題:Shellwhile循環(huán)詳解
瀏覽路徑:http://m.fisionsoft.com.cn/article/dhjdigi.html


咨詢
建站咨詢
