CentOS 7 Shell指令碼程式設計第十三講 迴圈語句
阿新 • • 發佈:2019-04-03
迴圈語句主要有while do while for select等,迴圈語句主要用於重複執行命令,直到達到終止迴圈條件。
首先介紹while語句。
[root@promote ~]# cat testwhilev1.0.sh #!/bin/bash num=0 while (( num <2 )) do ((num++)) echo $num done [root@promote ~]# bash testwhilev1.0.sh 1 2
while 語句表示式成立時,執行語句。條件不成立執行done結束迴圈語句。沒有控制好迴圈條件容易形成死迴圈,程式無終止執行條件。
再看一個例子。
[root@promote ~]# cat testwhilev1.1.sh #!/bin/bash count=0 while [[ $count < 5 ]] do ((count ++ )) echo $count done [root@promote ~]# bash testwhilev1.1.sh 1 2 3 4 5 [root@promote ~]# #思考問題,程式碼執行完畢$count等於幾?
until 作用和 while 相反,迴圈條件不成立執行語句,直到條件成立為止。until 不常用,簡單瞭解即可。
while 和 until 語句都含有 do done 結構。
for迴圈類似while迴圈。先看示例程式碼。本段程式碼執行結果為列印1到3。
[root@promote ~]# cat testif.sh
#!/bin/bash
for (( i=1; i<=3; i++ ))
do
echo $i
done
[root@promote ~]# bash testif.sh
1
2
3
[root@promote ~]#
for迴圈也可以製造死迴圈。
#死迴圈,需要強制退出
[root@promote ~]# cat testifv1.1.sh
#!/bin/bash
for (( i=1;; i++))
do
echo $i
done
[root@promote ~]#
#倒序列印
[root@promote ~]# cat testforv1.2.sh
#!/bin/bash
for (( i=5;i>0;i-- ))
do
echo $i
done
[root@promote ~]# bash testforv1.2.sh
5
4
3
2
1
[root@promote ~]
根據程式碼可知for ( ) 內語句塊分別為初始條件,判斷條件,為true退出,可選,迴圈語句,可選。需要注意括號內兩個分號不要遺漏。
select迴圈和其他迴圈不同。
[root@promote ~]# cat testselectv1.0.sh
#!/bin/bash
select name in bill tom john carry linda
do
echo $name
exit
done
#操作中輸入2,輸入完成退出
[root@promote ~]# bash testselectv1.0.sh
1) bill
2) tom
3) john
4) carry
5) linda
#? 2
tom
#錯誤輸入無輸出
[root@promote ~]# bash testselectv1.0.sh
1) bill
2) tom
3) john
4) carry
5) linda
#? 7
[root@promote ~]#