3. until 命令
until 命令的作用与 while 循环相反,即当条件为假时执行循环体,直到条件为真时停止(while命令是:当条件为真时执行循环体,直到条件为假时停止)。
换句话说,until 会一直循环,直到给定的条件返回成功(退出状态为 0)时停止循环。
官方语法
until COMMANDS; do COMMANDS-2; done
COMMANDS 后面的分号 ; 表示 命令的终止符,如果后面 do 写在新的一行内,则 分号; 可以省略。
将上述一行整理成多行,并用中文表达需要填充的部分,即成为如下语法:
语法格式:
until 测试命令; do
命令块;
done
或
until 测试命令
do
命令块;
done
语法说明:
until、do、done是关键字。do用于标记命令块的开始,done用于标记命令块的结束。
until命令执行过程说明:
- 先执行测试命令,根据测试命令的退出状态来决定是否执行命令块。
- 如果测试命令的退出状态为真值(零值
0)则直接退出此 until 命令,until 循环执行结束。 - 如果测试命令的退出状态为假值(非零值 )则执行命令块部分的命令。然后回到第一步,再执行测试命令。
示例:
循环打印 1 到 10 的整数。每一行打印一个数字。
写一个 Shell 程序 test_until.sh,内容如下:
#!/bin/bash
count=1
until [ $count -gt 10 ]
do
echo "$count"
count=$(expr $count + 1)
done
运行结果
weimingze@mzstudio:~$ bash test_until.sh
1
2
3
4
5
6
7
8
9
10
退出状态
until 命令的退出状态是内部最后执行的一条命令的退出状态。
练习:
- 写一个 Shell 脚本程序
sum_m2n.sh,此程序要求输入一个开始的整数 begin,输入一个结束的整数 end。使用 until 循环 计算 begin 到 end 所有整数的和并打印出来。如:
$ source sum_m2n.sh
please input begin number:
1
please input end number:
100
RESULT: 5050