四.Shell之迴圈用法
在Shell
中提供了三種常用的迴圈語句:for迴圈
、while迴圈
、until迴圈
。
和c語言一樣,可以使用break
,continue
。
for迴圈
用法一:直接遍歷列表
$ cat fordemo.sh #!/bin/bash for var in $* do echo $var done
用法二:略寫的計數
$ cat fordemo.sh #!/bin/bash for var in {1..5} do echo $var done $ ./fordemo.sh 1 2 3 4 5
注意此處in後面為{ }
,並且中間為2
個點:..
用法三:跳躍式的略寫計數
$ cat fordemo.sh #!/bin/bash for var in {1..100..10} do echo $var done $ ./fordemo.sh 1 11 21 31 41 51 61 71 81 91
用法四:配合seq命令的跳躍式略寫計數
$ cat fordemo.sh #!/bin/bash for var in $(seq 1 10 100) do echo $var done $ ./fordemo.sh 1 11 21 31 41 51 61 71 81 91
用法五:無{list},把傳參作為預設list
$ cat fordemo.sh #!/bin/bash for var do echo $var done
與用法一demo功能相同
用法六:類c風格的計數迴圈
$ cat fordemo.sh #!/bin/bash for ((i=1; i<10; i++)) do echo $i done $ ./fordemo.sh 1 2 3 4 5 6 7 8 9
注意用法六裡面for後面為(( ))
while迴圈
基本格式:
while [[表示式]] do command command done
demo:
$ cat fordemo.sh #!/bin/bash i=0 while [[ $i -lt 8 ]] #或者while (( $i -lt 8 )),while (( $i < 8 )) do let "i++" echo $i done $ ./fordemo.sh 1 2 3 4 5 6 7 8
while後面使用[[ ]]
時,既可以使用測試比較運算子
,又可以使用普通的運算子
;但是while後面使用(( ))
時,只可以使用普通的運算子
。
unitl迴圈
基本格式:
until 表示式 do command command done
用法與while大同小異