Shell指令碼學習筆記6——迴圈語句
阿新 • • 發佈:2021-08-16
for 迴圈
與其他程式語言類似,Shell支援for迴圈。
for迴圈一般格式為:
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
寫成一行:
for var in item1 item2 ... itemN; do command1; command2… done;
當變數值在列表裡,for 迴圈即執行一次所有命令,使用變數名獲取列表中的當前取值。命令可為任何有效的 shell 命令和語句。in 列表可以包含替換、字串和檔名。
in列表是可選的,如果不用它,for迴圈使用命令列的位置引數。
例如,順序輸出當前列表中的數字:
例項
forloopin12345do
echo"The value is:$loop"
done
輸出結果:
The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5
順序輸出字串中的字元:
#!/bin/bash
for str in This is a string
do
echo $str
done
輸出結果:
This
is
a
string
while 語句
while 迴圈用於不斷執行一系列命令,也用於從輸入檔案中讀取資料。其語法格式為:
while condition
do
command
done
以下是一個基本的 while 迴圈,測試條件是:如果 int 小於等於 5,那麼條件返回真。int 從 1 開始,每次迴圈處理時,int 加 1。執行上述指令碼,返回數字 1 到 5,然後終止。
例項
#!/bin/bashint=1
while(($int<=5))
do
echo$int
let"int++"
done
執行指令碼,輸出:
1
2
3
4
5
以上例項使用了 Bash let 命令,它用於執行一個或多個表示式,變數計算中不需要加上 $ 來表示變數,具體可查閱:Bash let 命令
。
while迴圈可用於讀取鍵盤資訊。下面的例子中,輸入資訊被設定為變數FILM,按<Ctrl-D>結束迴圈。
例項
echo'按下 <CTRL-D> 退出'echo-n'輸入你最喜歡的網站名: '
whilereadFILM
do
echo"是的!$FILM是一個好網站"
done
執行指令碼,輸出類似下面:
按下 <CTRL-D> 退出
輸入你最喜歡的網站名:菜鳥教程
是的!菜鳥教程 是一個好網站
無限迴圈
無限迴圈語法格式:
while :
do
command
done
或者
while true
do
command
done
或者
for (( ; ; ))
until 迴圈
until 迴圈執行一系列命令直至條件為 true 時停止。
until 迴圈與 while 迴圈在處理方式上剛好相反。
一般 while 迴圈優於 until 迴圈,但在某些時候—也只是極少數情況下,until 迴圈更加有用。
until 語法格式:
until condition
do
command
done
condition 一般為條件表示式,如果返回值為 false,則繼續執行迴圈體內的語句,否則跳出迴圈。
以下例項我們使用 until 命令來輸出 0 ~ 9 的數字:
例項
#!/bin/basha=0
until[!$a-lt10]
do
echo$a
a=`expr$a+1`
done
執行結果:
輸出結果為:
0
1
2
3
4
5
6
7
8
9
原文連結:https://www.runoob.com/linux/linux-shell-process-control.html