while
while是if-then语句和for循环的混杂体。while命令允许定义一个要测试的命令,然后循环执行一组命令,只要定义的测试命令返回的是退出状态码0。它会在每次迭代的一开始测试test命令。在test命令返回非零退出状态码时, while命令会停止执行那组命令。
while命令的格式:
while test command
do
other commands
done
最常见的test command的用法是用方括号来检查循环命令中用到的shell变量的值
#!/bin/bash
var1=10
while [ $var1 -gt 0] #-gt是大于
do
echo $var1
var1=$[ $var1 - 1 ]
done
until
until命令和while命令工作的方式完全相反。 until命令要求你指定一个通常返回非零退出状态码的测试命令。只有测试命令的退出状态码不为0, bash shell才会执行循环中列出的命令。一旦测试命令返回了退出状态码0,循环就结束了。
until命令格式
until test commands
do
other command
done
举个栗子:
#!/bin/bash
# using the until command
var1=100
until [ $var1 -eq 0 ] #-eq比较是否相等
do
echo $var1
var1=$[ $var1 - 25 ]
done
输出结果: