新聞中心
循環(huán)是編程語(yǔ)言的基本概念之一。當(dāng)你想要一遍又一遍地運(yùn)行一系列命令直到達(dá)到某個(gè)條件后終止退出時(shí),循環(huán)很方便。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。創(chuàng)新互聯(lián)推出宿州免費(fèi)做網(wǎng)站回饋大家。
在諸如 Bash 之類(lèi)的腳本語(yǔ)言中,循環(huán)對(duì)于自動(dòng)執(zhí)行重復(fù)性任務(wù)非常有用。在 Bash 腳本中有3個(gè)基本的循環(huán)結(jié)構(gòu),for 循環(huán), while 循環(huán),until 循環(huán)。
Bash while 循環(huán)
只要給定條件的計(jì)算結(jié)果為true,while循環(huán)就會(huì)使用一組給定的命令執(zhí)行未知次數(shù)。
Bash while循環(huán)采用以下形式:
while [CONDITION]
do
[COMMANDS]
done
在執(zhí)行命令之前評(píng)估條件。如果條件計(jì)算結(jié)果為true,則執(zhí)行命令。否則,如果條件的計(jì)算結(jié)果為false,則循環(huán)將終止,程序控制將傳遞給后面的命令。
在下面的示例中,在每次迭代時(shí),循環(huán)打印變量的當(dāng)前值并將變量i遞增1。
i=0
while [ $i -le 2 ]
do
echo Number: $i
((i++))
done
只要i小于或等于2,Tue循環(huán)就會(huì)迭代。它將產(chǎn)生以下輸出:
Number: 0
Number: 1
Number: 2
無(wú)限while循環(huán)
無(wú)限循環(huán)是一個(gè)無(wú)限重復(fù)且永不終止的循環(huán)。如果條件總是計(jì)算為true,則會(huì)得到無(wú)限循環(huán)。
在下面的示例中,我們使用內(nèi)置命令:,該命令始終返回true以創(chuàng)建無(wú)限循環(huán)。您還可以使用true內(nèi)置命令或始終返回true的任何其他語(yǔ)句。
while :
do
echo "Press to exit."
sleep 1
done
上面的while循環(huán)將無(wú)限期地運(yùn)行。您可以按下來(lái)終止循環(huán)CTRL+C。
這是一個(gè)單行等價(jià)物:
while :; do echo 'Press to exit.' ; sleep 1; done
逐行讀取文件
while循環(huán)最常見(jiàn)的用法之一是逐行讀取文件,數(shù)據(jù)流或變量。
在下面的示例中,while循環(huán)將/etc/passwd逐行讀取文件并打印每一行。
file=/etc/passwd
while read -r line; do
echo $line
done "$file"
我們使用輸入重定向(
當(dāng)逐行讀取文件中的行始終使用read與-r選項(xiàng),以防止反斜線作為轉(zhuǎn)義字符。
默認(rèn)情況下,該read命令修剪前導(dǎo)/尾隨空格字符(空格和制表符)。使用命令I(lǐng)FS=前的選項(xiàng)read可以防止此行為
file=/etc/passwd
while IFS= read -r line; do
echo $line
done "$file"
break和continue語(yǔ)句
break和continue語(yǔ)句可用于控制while循環(huán)執(zhí)行。
break語(yǔ)句
break語(yǔ)句終止當(dāng)前循環(huán)并將程序控制傳遞給終止循環(huán)后面的命令。它通常用于在滿(mǎn)足某個(gè)條件時(shí)終止循環(huán)。
在下面的示例中,一旦當(dāng)前迭代項(xiàng)等于,將中斷循環(huán)的執(zhí)行2。
i=0
while [ $i -lt 5 ]
do
echo "Number: $i"
((i++))
if [[ "$i" == '2' ]]; then
break
fi
done
echo 'All Done!'
Number: 0
Number: 1
All Done!
continue語(yǔ)句
continue語(yǔ)句退出循環(huán)的當(dāng)前迭代,并將程序控制傳遞給循環(huán)的下一次迭代。
在下面的內(nèi)容中,一旦當(dāng)前迭代項(xiàng)等于2continue語(yǔ)句,將導(dǎo)致執(zhí)行返回到循環(huán)的開(kāi)始并繼續(xù)下一次迭代。
i=0
while [ $i -lt 5 ]
do
((i++))
if [[ "$i" == '2' ]]; then
continue
fi
echo "Number: $i"
done
echo 'All Done!'
Number: 1
Number: 3
Number: 4
Number: 5
All Done!
網(wǎng)站欄目:講解一下Bash中的while循環(huán)
當(dāng)前鏈接:http://fisionsoft.com.cn/article/dppsshi.html


咨詢(xún)
建站咨詢(xún)
