日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747


Bash實(shí)例:詳解 while 和 until 命令,用于循環(huán)執(zhí)行語句

 

在 linux 的 Bash shell 中, while 復(fù)合命令 (compound command) 和 until 復(fù)合命令都可以用于循環(huán)執(zhí)行指定的語句,直到遇到 false 為止。查看 man bash 里面對(duì) while 和 until 的說明如下:

while list-1; do list-2; done
until list-1; do list-2; done
The while command continuously executes the list list-2 as long as the last command in the list list-1 returns an exit status of zero.

 

The until command is identical to the while command, except that the test is negated; list-2 is executed as long as the last command in list-1 returns a non-zero exit status.

 

The exit status of the while and until commands is the exit status of the last command executed in list-2, or zero if none was executed.

可以看到,while 命令先判斷 list-1 語句的最后一個(gè)命令是否返回為 0,如果為 0,則執(zhí)行 list-2 語句;如果不為 0,就不會(huì)執(zhí)行 list-2 語句,并退出整個(gè)循環(huán)。

即,while 命令是判斷為 0 時(shí)執(zhí)行里面的語句。

跟 while 命令的執(zhí)行條件相反,until 命令是判斷不為 0 時(shí)才執(zhí)行里面的語句。

注意:這里有一個(gè)比較反常的關(guān)鍵點(diǎn),bash 是以 0 作為 true,以 1 作為 false,而大部分編程語言是以 1 作為 true,0 作為 false,要注意區(qū)分,避免搞錯(cuò)判斷條件的執(zhí)行關(guān)系。

在 bash 中,常用 test 命令、[ 命令、[[ 命令來判斷條件,但是 while 命令并不限于使用這幾個(gè)命令來進(jìn)行判斷,實(shí)際上,在 while 命令后面可以跟著任意命令,它是基于命令的返回值來進(jìn)行判斷,分別舉例說明如下。

  • 下面的 while 循環(huán)類似于C語言的 while (--count >= 0) 語句,使用 [ 命令來判斷 count 變量值是否大于 0,如果大于 0,則執(zhí)行 while 循環(huán)里面的語句:
count=3
while [ $((--count)) -ge 0 ]; do 
 # do some thing
done
  • 下面的 while 循環(huán)使用 read 命令讀取 filename 文件的內(nèi)容,直到讀完為止,read 命令在讀取到 EOF 時(shí),會(huì)返回一個(gè)非 0 值,從而退出 while 循環(huán):
while read fileline; do
 # do some thing
done < filename
  • 下面的 while 循環(huán)使用 getopts 命令處理所有的選項(xiàng)參數(shù),一直處理完、或者報(bào)錯(cuò)為止:
while getopts "rich" arg; do
 # do some thing with $arg
done

如果要提前跳出循環(huán),可以使用 break 命令。查看 man bash 對(duì) break 命令說明如下:

break [n]
Exit from within a for, while, until, or select loop.

 

If n is specified, break n levels. n must be ≥ 1. If n is greater than the number of enclosing loops, all enclosing loops are exited.

 

The return value is 0 unless n is not greater than or equal to 1.

即,break 命令可以跳出 for 循環(huán)、while 循環(huán)、until 循環(huán)、和 select 循環(huán)。

分享到:
標(biāo)簽:Bash
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定