【Linux】结构化命令:while命令
1、基本介绍
while命令定义了一个要测试的命令,只要该命令的退出状态码为0,就循环执行一组命令;反之,退出状态码不为0,则停止循环。
格式:
while test command
do
commands
done
while命令中的test command与if-then语句中的格式完全一样,可以使用任何bash shell命令,或者用test command进行条件测试。
while命令的关键在于指定的test command的退出状态码必须随着循环中执行的命令而改变,如果退出状态码不发生变化,那while循环就成了死循环。
test command最常用的方法是使用方括号检查循环命令中用的shell变量值。
#!/bin/bash
var1=20
while [ $var1 -gt 0 ]
do
echo $var1
var1=$[ $var1-2 ]
done
2、使用多个测试命令
当while语句定义了多个测试命令(每个测试命令要单独放在一行中),只有最后一个测试命令的退出状态码才会被用于决定是否结束循环。且在每次迭代时所有的测试命令都会被执行,包括最后一个测试命令失败的末次迭代。
#!/bin/bash
var1=12
while echo $var1
[ $var1 -ge 2 ]
do
echo "这是一个whil循环。"
var1=$[ $var1 - 1 ]
done