3. until 命令

until 命令的作用与 while 循环相反,即当条件为时执行循环体,直到条件为时停止(while命令是:当条件为时执行循环体,直到条件为时停止)。

换句话说,until 会一直循环,直到给定的条件返回成功(退出状态为 0)时停止循环。

官方语法

until COMMANDS; do COMMANDS-2; done

COMMANDS 后面的分号 ; 表示 命令的终止符,如果后面 do 写在新的一行内,则 分号; 可以省略。

将上述一行整理成多行,并用中文表达需要填充的部分,即成为如下语法:

语法格式:

until 测试命令; do
    命令块;
done

until 测试命令
do
    命令块;
done

语法说明:

until命令执行过程说明:

  1. 先执行测试命令,根据测试命令的退出状态来决定是否执行命令块。
  2. 如果测试命令的退出状态为真值(零值 0)则直接退出此 until 命令,until 循环执行结束。
  3. 如果测试命令的退出状态为假值(非零值 )则执行命令块部分的命令。然后回到第一步,再执行测试命令。

示例:

循环打印 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 命令的退出状态是内部最后执行的一条命令的退出状态。

练习:

$ source sum_m2n.sh
please input begin number:
1
please input end number:
100
RESULT: 5050