while 循環是 Shell 腳本中最簡單的一種循環,當條件知足時,while 重複地執行一組語句,當條件不知足時,就退出 while 循環。
Shell while 循環的用法以下:html
while condition
do
statements
doneshell
condition
表示判斷條件,statements
表示要執行的語句(能夠只有一條,也能夠有多條),do
和done
都是 Shell 中的關鍵字。
while 循環的執行流程爲:bash
注意,在 while 循環體中必須有相應的語句使得 condition 愈來愈趨近於「不成立」,只有這樣才能最終退出循環,不然 while 就成了死循環,會一直執行下去,永無休止。
while 語句和 if else 語句中的 condition 用法都是同樣的,你能夠使用 test 或 [] 命令,也能夠使用 (()) 或 [[]],遺忘的讀者請猛擊下面的連接回顧:spa
【實例1】計算從 1 加到 100 的和。.net
運行結果:
The sum is: 5050
在 while 循環中,只要判斷條件成立,循環就會執行。對於這段代碼,只要變量 i 的值小於等於 100,循環就會繼續。每次循環給變量 sum 加上變量 i 的值,而後再給變量 i 加 1,直到變量 i 的值大於 100,循環纔會中止。i++
語句使得 i 的值逐步增大,讓判斷條件愈來愈趨近於「不成立」,最終退出循環。
對上面的例子進行改進,計算從 m 加到 n 的值。code
運行結果:
1↙
100↙
The sum is: 5050
【實例2】實現一個簡單的加法計算器,用戶每行輸入一個數字,計算全部數字的和。htm
運行結果:
12↙
33↙
454↙
6767↙
1↙
2↙
The sum is: 7269
在終端中讀取數據,能夠等價爲在文件中讀取數據,按下 Ctrl+D 組合鍵表示讀取到文件流的末尾,此時 read 就會讀取失敗,獲得一個非 0 值的退出狀態,從而致使判斷條件不成立,結束循環。ip