一、while循环
while命令也可以用来实现循环
基本格式如下:
while test command
do
commands
done
若test command条件判断成立,则执行commands,若不成立,则跳出循环。
$ cat test.sh
#!/bin/bash
a=1
while [ $a -le 10 ]
do
echo "a=$a"
a=$[$a+1]
done
$ ./test.sh
a=1
a=2
a=3
a=4
a=5
a=6
a=7
a=8
a=9
a=10
while命令有个奇怪的用法,while命令允许在while语句行定义多条命令,但是只有最后一条测试命令的退出状态 决定循环是否停止。
$ cat test.sh
#!/bin/bash
a=1
while echo $a
[ $a -le 10 ]
do
echo "a=$a"
a=$[$a+1]
done
$ ./test.sh
1
a=1
2
a=2
3
a=3
4
a=4
5
a=5
6
a=6
7
a=7
8
a=8
9
a=9
10
a=10
11
注意最后一行打印出了"11",之后 判断 条件[ $a -le 10 ]不成立,然后退出循环。
二、until循环
until命令也可以用来实现循环,基本格式:
until test command
do
other commands
done
与while命令恰恰相反,若test command条件判断不成立,则执行commands,若成立,则跳出循环。until命令在until语句行也可以定义多条命令,只有最后一条测试命令的退出状态。
$ cat test.sh
#!/bin/bash
a=1
until echo $a
[ 10 -le $a ]
do
echo "a=$a"
a=$[$a+1]
done
$ ./test.sh
1
a=1
2
a=2
3
a=3
4
a=4
5
a=5
6
a=6
7
a=7
8
a=8
9
a=9
10