本文是Linux Shell系列教程的第(十一)篇,更多Linux Shell教程請看:Linux Shell系列教程 在上一篇Linux Shell系列教程之(十)Shell for迴圈中,我們已經對Shell 迴圈語句的for迴圈進行了介紹,本篇給大家介紹下Shell 中另一種迴圈語句:Shel ...
本文是Linux Shell系列教程的第(十一)篇,更多Linux Shell教程請看:Linux Shell系列教程
在上一篇Linux Shell系列教程之(十)Shell for迴圈中,我們已經對Shell 迴圈語句的for迴圈進行了介紹,本篇給大家介紹下Shell 中另一種迴圈語句:Shell while迴圈。
Shell while迴圈語法及特點
Shell while迴圈的語法如下所示:
while command do Statement(s) to be executed if command is true done
command 為條件測試,如果傳回值為0(條件測試為真),則進入迴圈,執行命令區域,否則不進入迴圈。
在執行命令的區域中,應該要有改變條件測試的命令,這樣,才有機會在有限步驟後結束執行while迴圈(除非想要執行無窮迴圈)。
while迴圈通常用來不斷執行一系列命令,也可以用來從輸入文件中讀取數據;
命令通常為測試條件。
Shell while迴圈使用舉例
瞭解了Shell while迴圈的語法及特點以後,接下來通過幾個例子來詳細瞭解下Shell while迴圈的使用。
例子1:
COUNTER=0 while [ $COUNTER -lt 5 ] do COUNTER='expr $COUNTER+1' echo $COUNTER done
說明:如果COUNTER小於5,那麼返回 true。COUNTER從0開始,每次迴圈處理時,COUNTER加1,直到COUNT為5後終止。
輸出:
1
2
3
4
5
例子2:
#!/bin/bash while read text do echo ${text} done < /home/infile
說明:這個例子使用read在標準輸入讀取數據,放入變數text中,如果讀到的數據非空,就進入迴圈。然後在迴圈中把該行數據顯示出來。
最後一樣是輸入重定向,將/home/infile的內容作為此腳本的標準輸入。
此腳本的輸出結果就是infile文件的內容。
輸出:
Hello world!
I am linuxdaxue.com!
例子3:
#!/bin/bash declare -i i=1 declare -i sum=0 while ((i<=10)) do let sum+=i let ++i done echo $sum
說明:在這個例子中,首先聲明瞭兩個int類型的變數i和sum,然後進入下麵的迴圈,滿足條件後跳出迴圈。
結果:這個例子就作為留給大家的一個思考題目,大家可以自己試驗下,或者關註我的微信公眾號(微信號:Linuxdaxue)後,發送【shell while迴圈】,來查看答案。
好了,有關Shell while迴圈的內容今天就先給大家介紹這些。更多Linux Shell教程請看:Linux Shell系列教程
本文由Linux技術達人【daxue】發表在:Linux大學
本文固定鏈接:Linux Shell系列教程之(十一)Shell while迴圈