學習目標
Shell的迴圈語句
Shell常見的迴圈語句有for迴圈、while迴圈語句和until迴圈。
12-6-1 for迴圈
語法:
for 變數 in 列表 do 操作 done
注意:變數要在迴圈內部用來指列表當中的物件。
列表是在for迴圈的內部要操作的物件,可以是字串也可以是檔案,如果是檔案則為檔名。
例項:在列表中的值:a,b,c,e,I,2,4,6,8用迴圈的方式把字元與數字分成兩行輸出。
root@ubuntu:/home/study# vi test5 #! /bin/bash for i in a,b,c,e,I 2,4,6,8 do echo $i done
注意: 在迴圈列表中的空格可表示換行。
root@ubuntu:/home/study# chmod +x test5
root@ubuntu:/home/study# ./test5
a,b,c,e,I
2,4,6,8
例項:求從1~100的和。
#! /bin/bash total=0; for((j=1;j<=100;j++)) do total=`expr $total + $j`; done echo "The result is $total";
注意:for語句中的雙括號不能省,最後的分號可有可無,表示式total=`expr $total + $j`的加號兩邊的空格不能省,否則會成為字串的連線。
12-6-2 while迴圈
語法:
while 表示式 do 操作 done
只要表示式為真,do和done之間的操作就一直會進行。
例項:用while迴圈求1~100的和。
#! /bin/bash total=0; num=0; while((num<=100)) do total=`expr $total + $num`; num=`expr $num + 1`; done echo "The result is $total";
12-6-3 until迴圈
語法:
until 表示式 do 操作 done
注意:重複do和done之間的操作直到表示式成立為止。
例項:用until迴圈求1~100的和。
#! /bin/bash total=0; num=0; until [ $num –gt 100 ] do total=`expor $total + $num`; num=`expr $num + 1`; done echo "The result is $total";