shell常用的迴圈語句包括 for迴圈 、while迴圈 、until迴圈。這節主要對這幾種迴圈語句的講解。
for迴圈一般格式為:
for 變數名 in 列表
docommand1
command2
...commandn
done
當變數值在列表裡,for迴圈即執行一次所有命令,使用變數名獲取列表中的當前取值。命令可為任何有效的shell命令和語句。in列表可以包含替換、字串和檔名。
例如,順序輸出當前列表中的數字:
for loop in 1 2 3 4 5
do echo "the value is: $loop"
done
遍歷一維陣列:
#! /bin/bash
arr=(1 2 3 4 5 6)
for data in $
do
echo $
done
while迴圈用於不斷執行一系列命令,也用於從輸入檔案中讀取資料;命令通常為測試條件。其格式為:
while 命令
do command1
command2
...commandn
done
命令執行完畢,控制返回迴圈頂部,從頭開始直至測試條件為假。
以下是乙個基本的while迴圈,測試條件是:如果int小於5,那麼條件返回真。int從0開始,每次迴圈處理時,int加1。執行上述指令碼,返回數字0到4,然後終止。
#!/bin/bash
int=0
while (($int<5))
do echo $int
let "int++"
done
while迴圈可用於讀取鍵盤資訊。下面的例子中,輸入資訊被設定為變數film,按結束迴圈。
echo 'type to terminate'
echo -n 'enter your most liked film:' ""
while read keybord
do echo "yeah! great film the $keybord"
done
until迴圈執行一系列命令直至條件為真時停止。until迴圈與while迴圈在處理方式上剛好相反。一般while迴圈優於until迴圈,但在某些時候—也只是極少數情況下,until迴圈更加有用。
until 條件
command1
command2
...commandn
done
在迴圈過程中,有時候需要在未達到迴圈結束條件時強制跳出迴圈,shell使用兩個命令來實現該功能:break和continue。
break命令
break命令允許跳出所有迴圈(終止執行後面的所有迴圈)。
#!/bin/bash
for i in "a b c d"
do
echo "$i "
for j in `seq 10`
do
if [ $j -eq 5 ];then
break
fi
echo "$j "
done
done
continue命令
continue命令與break命令類似,只有一點差別,它不會跳出所有迴圈,僅僅跳出當前迴圈。
#!/bin/bash
while :
doecho -n "input a number between 1 to 5: "
read anum
case $anum in
1|2|3|4|5) echo "your number is $anum!"
;;*) echo "you do not select a number between 1 to 5!"
continue
echo "game is over!"
;;esac
done
Shell學習(四)迴圈語句while
迴圈語句while 表示式while 條件語句 do語句1 done案例一 while條件判斷數字 bin sh i 1 while i lt 10 doecho i i done案例二 while逐行讀取某個檔案 bin sh while read line doecho line done ro...
JAVA學習筆記 四 迴圈語句
while迴圈 while迴圈 迴圈變數,可以控制迴圈次數。public class test system.out.println count system.out.println hahahhaa while迴圈 實現1 100之和 public class test system.out.pr...
Shell學習筆記 迴圈
迴圈 主要有三種方式 for while until for迴圈 從序列中一一取出字元放入執行的變數中,然後重複執行do 到done之間的命令,知道所有元素取完。語法結構 for 變數 in 序列 do cmd done例子 bin bash for k in seq 1 10 do mkdir h...