# shell
循环while
命令
while
命令允许定义一个要测试的命令,然后循环执行一组命令,只要定义的测试命令返回的是退出状态码 0 。它会在每次迭代的一开始测试 test 命令。在 test 命令返回非零退出状态码时, while 命令会停止执行那组命令。
while 命令格式
while test command
do
other commands
done
while
命令中定义的 test command
和 if-then
语句中的格式一模一样。
最常见的 test command
的用法是用方括号来检查循环命令中用到的shell
变量的值。
#!/bin/bash
nu=5
while [ $nu -gt 0 ]
do
echo "nu: $nu"
nu=$[ $nu - 1 ]
done
# nu: 5
# nu: 4
# nu: 3
# nu: 2
# nu: 1
while
命令允许在 while
语句行定义多个测试命令。只有最后一个测试命令的退出状态码
会被用来决定什么时候结束循环。
#!/bin/bash
nu=5
while echo $nu
[ $nu -gt 0 ]
do
echo "nu: $nu"
nu=$[ $nu - 1 ]
done
# 5
# nu: 5
# 4
# nu: 4
# 3
# nu: 3
# 2
# nu: 2
# 1
# nu: 1
# 0
第一个测试简单地显示了 var1 变量的当前值。第二个测试用方括号来判断 var1 变量的值。
在循环内部, echo 语句会显示一条简单的消息,说明循环被执行了。运行本例时输出
以0
结束,说明执行了[ $nu -gt 0 ]
之前的echo $nu
语句。