日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Shellwhile循環(huán)詳解
while 循環(huán)是 Shell 腳本中最簡(jiǎn)單的一種循環(huán),當(dāng)條件滿足時(shí),while 重復(fù)地執(zhí)行一組語(yǔ)句,當(dāng)條件不滿足時(shí),就退出 while 循環(huán)。

肥東網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(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 代碼。
  • 如果一開(kāi)始 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)。


文章標(biāo)題:Shellwhile循環(huán)詳解
標(biāo)題URL:http://www.5511xx.com/article/dhjdigi.html