1. 程式人生 > >CentOS 7 Shell指令碼程式設計第十三講 迴圈語句

CentOS 7 Shell指令碼程式設計第十三講 迴圈語句

開發十年,就只剩下這套架構體系了! >>>   

迴圈語句主要有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 ~]#