while的基本格式
while test command
do
other commands
done
while 命令中定义的test command和if-then语句的格式一模一样。可以使用任何普通的bash shell命令,或者用test命令进行条件测试,比如测试变量值。
while命令的关键在于所制定的test command 的退出状态吗必须随着玄幻中运行的命令而改变。如果推出状态码不发生变化,while循环将一直不停的进行下去。
最常见的test command的用法就是用方括号来检查循环命令中用到的shell变量的值
[root@ecs robin]# vim while.sh
#! /bin/bash
# while command test
var1=10
while [ $var1 -gt 0 ]
do
echo $var1
var1=$[ $var1 - 1 ]
done
[root@ecs robin]# ./while.sh
10
9
8
7
6
5
4
3
2
1
while命令定义了每次迭代时检查的测试条件:
while [ $var1 -gt 0 ]
只要测试条件成立,while命令就会不停地循环执行定义好的命令。在这些命令中,测试条件用到的变量必须修改,否则就会陷入无限循环。在本例中,我们用shell算数来讲变量值减一
var1=$[ $var1 - 1 ]
while循环会在测试条件不再成立时停止
附录:
【Linux】条件判断eq、ne、gt、lt、ge、le
整数比较:
-eq(equal) 相等
-ne(inequality) 不相等
-gt(greater than) 大于
-lt(less than) 小于
-ge(greater equal) 大于或等于
-le(less equal) 小于或等于