while迴圈是shell指令碼中最簡單的一種迴圈,當條件滿足時,while重複地執行一組語句;當條件不滿足時,就退出while迴圈。
shell while迴圈的用法如下:
while condition
dostatements
done
condition表示判斷條件,statements表示要執行的語句(可以只有一條,也可以有多條),do和done都是shell中的關鍵字。
while迴圈的執行流程為:先對condition進行判斷,如果該條件成立,就進入迴圈,執行while迴圈體中的語句,也就是do和done之間的語句。這樣就完成了一次迴圈。每一次執行到done的時候都會重新判斷condition是否成立,如果成立,就進入下一次迴圈,繼續執行do和done之間的語句,如果不成立,就結束整個while迴圈,執行done後面的其它shell**。如果一開始condition就不成立,那麼程式就不會進入迴圈體,do和done之間的語句就沒有執行的機會。
注意:在while迴圈體重必須有相應的語句使得condition越來越近於「不成立」,只有這樣才能最終退出迴圈,否則while就成了死迴圈,會一直執行下去,永無休止。
while語句和if else語句中的condition用法都是一樣的,可以使用test或命令,也可以使用(())或。
#!/bin/bash
i=1sum=0
while
(( i <= 100))do
(( sum += i))(
( i++))
done
echo
"sum=$sum"
結果:
sum=5050
#!/bin/bash
read m
read n
sum=0
while
((m<=n))do
((sum+=m))(
(m++))
done
echo
"the sum is:$sum"
結果:410
the sum is:49
練習:實現乙個簡單的加法計算器,使用者每行輸入乙個數字,計算所有數字的和(請輸入您要的計算的數字,按ctrl+d組合鍵結束讀取)
#!/bin/bash
sum=0
echo
"請輸入要計算的數字 按crtl+d組合鍵結束讀取:"
while read ado(
(sum+=a)
)done
echo
"sum=$sum"
結果:
請輸入要計算的數字 按crtl+d組合鍵結束讀取:13
463sum=17
==注意:==在終端讀取資料,可以等於在檔案中讀取資料,按下ctrl+d組合鍵表示讀取到檔案流的末尾,此時read就會讀取失敗,得到乙個非零的退出狀態,從而導致判斷條件不成立,結束迴圈。
until迴圈和while迴圈恰好相反,當判斷條件不成立時才進行迴圈,一旦判斷條件成立,就終止迴圈。until的使用場景很少,一般使用while即可。
shell until迴圈的用法如下:
until condition
dostatements
done
condition表示判斷條件,statements表示要執行的語句(可以只有一條,也可以有多條),do和done都是shell中的關鍵字。
until迴圈的執行流程為:先對condition進行判斷,如果該條件不成立,就進入迴圈,執行until迴圈體中的語句(do和done之間的語句),這樣就完成了一次迴圈。每一次執行到done的時候都會重新判斷condition是否成立,如果不成立,就進入下一次迴圈,繼續執行迴圈體中的語句,如果成立,就結束整個until迴圈,執行done後面的其它shell**。如果一開始condition就成立,那麼程式就不會進入迴圈體,do和done之間的語句就沒有執行的機會。注意:在until迴圈體中必須有相應的語句使得condition越來越趨近於「成立」,只有這樣才能最終退出迴圈,否則until就成了死迴圈,會一直執行下去,永無休止。
#!/bin/bash
i=1sum=0
until
((i>100))do
((sum+=i))(
(i++))
done
echo
"sum=$sum"
結果:
sum=5050
#!/bin/bash
until
[-z "$1"
]# -z:用來檢測乙個變數是否含有資料
doecho
"$@"
shift
done
結果:
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9
4 5 6 7 8 9
5 6 7 8 9
6 7 8 9
7 8 9
8 99
#!/bin/bash
val1=100
until
[$val1
-eq 0 ]
doecho
$val1
val1=$[
$val1
-25 ]
done
結果:
10075
5025
shell程式設計while
指令碼程式設計 順序結構 選擇結構 ifcase 迴圈結構 forwhile until while迴圈 適用於迴圈次數未知的場景,要有退出條件 語法 while condition do statement done 計算100以內所有正整數的和 bin bash declare i i 1 de...
shell 程式設計之while迴圈和for迴圈
一 while迴圈 1.語法 一 while語句結構 條件為真時,執行迴圈體 while 條件 do 迴圈體 done 二 until語法結構 條件為假時,一直執行迴圈體 直到條件變為真 until 條件 do 迴圈體 done二 for迴圈 shell風格語法 for 變數名 in 取值列表 do...
Shell指令碼程式設計while迴圈
while 語句 do 執行語句 done接下來將會通過兩個簡單並且經常的使用的例子講解 bin bash i 1while i le 10 do i expr i 1 done echo i其中lele le表示不大於,exp rexpr expr 表示是相加運算 原始檔為 1 192.168.1...