结构化命令 之 until命令

本篇内容均摘自《Linux命令行与shell脚本编程大全》,个人认为需要重点学习的章节。【免费】Linux命令行与Shell脚本编程大全 第3版 PDF全本 21MB 百度网盘下载 - 今夕是何夕 - 博客园
until命令和while命令工作的方式完全相反。 until命令要求你指定一个通常返回非零退出状态码的测试命令。只有测试命令的退出状态码不为0, bash shell才会执行循环中列出的命令。一旦测试命令返回了退出状态码0,循环就结束了。
和你想的一样, until命令的格式如下:
until test commands
do
other commands
done
和while命令类似,你可以在until命令语句中放入多个测试命令。只有最后一个命令的退出状态码决定了bash shell是否执行已定义的other commands。
下面是使用until命令的一个例子:

$ cat test12
#!/bin/bash
var1=100
until [ $var1 -eq 0 ]
do
  echo $var1
  var1=$[ $var1 - 25 ]
done
$ ./test12
100
75
50
25

本例中会测试var1变量来决定until循环何时停止。只要该变量的值等于0, until命令就会停止循环。同while命令一样,在until命令中使用多个测试命令时要注意。

$ cat test13
#!/bin/bash
var1=100
until echo $var1
      [ $var1 -eq 0 ]
do
  echo Inside the loop: $var1
  var1=$[ $var1 - 25 ]
done
$ ./test13
100
Inside the loop: 100
75
Inside the loop: 75
50
Inside the loop: 50
25
Inside the loop: 25
0

shell会执行指定的多个测试命令,只有在最后一个命令成立时停止。

你可能感兴趣的:(结构化命令 之 until命令)