在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大同小異