shell程式設計-迴圈語句
阿新 • • 發佈:2018-11-11
一、for語句
for迴圈語句有兩種格式,分別如下:
(一)for in語句
for var in list
do
commands
done
list代表要迴圈的值,在每次迴圈的時候,會把當前的值賦值給var(變數名而已,隨意定), 這樣在迴圈體中就可以直接通過$var獲取當前值了。list裡面的值預設以空格分割,可以通過環境變數IFS控制
例項1:
1 #!/bin/bash
2
3 for i in 1 2 3 4 5
4 do
5 echo $i
6 done
輸出結果:
[email protected] :~/liyijun$ source for.sh
1
2
3
4
5
例項2:
1 #!/bin/bash
2 list="a b c d"
3 for str in $list
4 do
5 echo $str
6 done
輸出結果;
[email protected]:~/liyijun$ source for.sh
a
b
c
d
(2)C語言風格的for迴圈
1 #!/bin/bash
2
3 for(( i=0;i<11;i++ ))
4 do
5 echo $i
6 done
輸出結果:
[email protected]:~/liyijun$ source for.sh
0
1
2
3
4
5
6
7
8
9
10
二、while語句
其基本格式如下:
while command
do
commands
done
可以看出來其判斷依然是一個命令執行之後的返回狀態,這一點跟if控制語句一樣,所以理所當然,也會有test、雙括號等。
例項1:
1 #!/bin/bash 2 3 i=0 4 while (( $i<5 )) 5 do 6 # i=$[$i+1] 7 (( i++ )) 8 echo $i 9 done
這個地方處理類似於c語言的i++有好多種方法,可以參考下面的部落格:
https://blog.csdn.net/agent_007/article/details/52265819?locationNum=2&fps=1
三、使用break和continue來控制迴圈
(一)、break的兩種用法
- break 用來跳出最近的迴圈
- break n n是一個整數,代表跳出當前迴圈的外層的第幾層迴圈
例項1:
1 #!/bin/bash
2
3 for(( i=0;i<11;i++ ))
4 do
5 if (( i==5 ))
6 then
7 break
8 fi
9 echo $i
10 done
輸出結果:
[email protected]:~/liyijun$ source for.sh
0
1
2
3
4
例項2:
#!/bin/bash
j=0
while (( j<5 ))
do
(( j++ ))
echo "j = $j"
for(( i=0;i<2;i++ ))
do
if (( j==3 ))
then
break 2
fi
echo "i = $i"
done
done
輸出結果;
j = 1
i = 0
i = 1
j = 2
i = 0
i = 1
j = 3
(二)、coutinue
continue表示終止當前的一次迴圈,進入下一次迴圈,注意,continue後面的語句不會執行。其用法和break類似,不再贅述。
REF: