while命令定义一个要测试的命令,然后循环执行一组命令,只要定义的测试命令是退出状态码0(shell中运行的每个命令都使用退出状态码(exit status)告诉shell它已经运行完毕。退出状态码是一个0~255的整数值,在命令结束运行时由命令传给shell。可以捕获这个值并在脚本中使用在shell中使用命令echo $?查看状态,)它会在每次迭代的一开始测试test命令,在test命令返回非零退出状态码时,while命令会停止执行那组命令。
while的基本格式
while test command
do
other comands
done
whilie命令的关键在于所指定的test command的退出状态码必须随着循环中运行的命令而改变,如果推出状态码不发生改变,while循环就一直不停的进行下去。常见的test command的用法是用方括号来检查循环命令中用到的shell变量的值。
复制代码:
#!/bin/bash
var1=10 #var1变量赋值10
while [ $var1 -gt 0 ] #test条件是状态为 0是循环,为非零时退出
do
echo $var1 #显示变量,并且是变化的变量,依次减一
var1=$[ $var1 - 1 ]
done
[root@smart 桌面]# ./whiledo.sh
10
9
8
7
6
5
4
3
2
1