1. 程式人生 > 其它 >Shell指令碼學習筆記6——迴圈語句

Shell指令碼學習筆記6——迴圈語句

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迴圈使用命令列的位置引數。

例如,順序輸出當前列表中的數字:

例項

forloopin12345
do
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/bash
int=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/bash

a=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