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

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

新聞中心

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

肥東網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

Shell while 循環(huán)的用法如下:

while condition
do
    statements
done

condition表示判斷條件,
statements表示要執(zhí)行的語句(可以只有一條,也可以有多條),
do
done都是 Shell 中的關(guān)鍵字。

while 循環(huán)的執(zhí)行流程為:

  • 先對 condition 進(jìn)行判斷,如果該條件成立,就進(jìn)入循環(huán),執(zhí)行 while 循環(huán)體中的語句,也就是 do 和 done 之間的語句。這樣就完成了一次循環(huán)。
  • 每一次執(zhí)行到 done 的時候都會重新判斷 condition 是否成立,如果成立,就進(jìn)入下一次循環(huán),繼續(xù)執(zhí)行 do 和 done 之間的語句,如果不成立,就結(jié)束整個 while 循環(huán),執(zhí)行 done 后面的其它 Shell 代碼。
  • 如果一開始 condition 就不成立,那么程序就不會進(jìn)入循環(huán)體,do 和 done 之間的語句就沒有執(zhí)行的機(jī)會。


注意,在 while 循環(huán)體中必須有相應(yīng)的語句使得 condition 越來越趨近于“不成立”,只有這樣才能最終退出循環(huán),否則 while 就成了死循環(huán),會一直執(zhí)行下去,永無休止。

while 語句和 if else 語句中的 condition 用法都是一樣的,你可以使用 test 或 [] 命令,也可以使用 (()) 或 [[]],遺忘的讀者請猛擊下面的鏈接回顧:

  • Shell if else
  • Shell退出狀態(tài)
  • Shell test命令
  • Shell [[]]

while 循環(huán)舉例

【實例1】計算從 1 加到 100 的和。

#!/bin/bash

i=1
sum=0

while ((i <= 100))
do
    ((sum += i))
    ((i++))
done
echo "The sum is: $sum"

運行結(jié)果:

The sum is: 5050

在 while 循環(huán)中,只要判斷條件成立,循環(huán)就會執(zhí)行。對于這段代碼,只要變量 i 的值小于等于 100,循環(huán)就會繼續(xù)。每次循環(huán)給變量 sum 加上變量 i 的值,然后再給變量 i 加 1,直到變量 i 的值大于 100,循環(huán)才會停止。

i++語句使得 i 的值逐步增大,讓判斷條件越來越趨近于“不成立”,最終退出循環(huán)。

對上面的例子進(jìn)行改進(jìn),計算從 m 加到 n 的值。

#!/bin/bash

read m
read n
sum=0

while ((m <= n))
do
    ((sum += m))
    ((m++))
done
echo "The sum is: $sum"

運行結(jié)果:

1↙

100↙

The sum is: 5050

【實例2】實現(xiàn)一個簡單的加法計算器,用戶每行輸入一個數(shù)字,計算所有數(shù)字的和。

#!/bin/bash

sum=0

echo "請輸入您要計算的數(shù)字,按 Ctrl+D 組合鍵結(jié)束讀取"
while read n
do
    ((sum += n))
done

echo "The sum is: $sum"

運行結(jié)果:

12↙

33↙

454↙

6767↙

1↙

2↙

The sum is: 7269

在終端中讀取數(shù)據(jù),可以等價為在文件中讀取數(shù)據(jù),按下 Ctrl+D 組合鍵表示讀取到文件流的末尾,此時 read 就會讀取失敗,得到一個非 0 值的退出狀態(tài),從而導(dǎo)致判斷條件不成立,結(jié)束循環(huán)。


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