AI智能
改变未来

shell while until循环讲解

while 循环是 Shell 脚本中最简单的一种循环,当条件满足时,while 重复地执行一组语句,当条件不满足时,就退出 while 循环。这里写自定义目录标题。Shell while 循环的用法如下:

while condition
do
statements
done

condition表示判断条件,statements表示要执行的语句(可以只有一条,也可以有多条),do和done都是 Shell 中的关键字。

while 循环的执行流程为:

先对 condition 进行判断,如果该条件成立,就进入循环,执行 while 循环体中的语句,也就是 do 和 done 之间的语句。这样就完成了一次循环。

每一次执行到 done 的时候都会重新判断 condition 是否成立,如果成立,就进入下一次循环,继续执行 do 和 done 之间的语句,如果不成立,就结束整个 while 循环,执行 done 后面的其它 Shell 代码。

如果一开始 condition 就不成立,那么程序就不会进入循环体,do 和 done 之间的语句就没有执行的机会。

注意,在 while 循环体中必须有相应的语句使得 condition 越来越趋近于“不成立”,只有这样才能最终退出循环,否则 while 就成了死循环,会一直执行下去,永无休止。

while 循环举例

#!/bin/bash
i=1
sum=0
while ((i <= 100))
do
sum += i
i++
done
echo “The sum is: $sum”
运行结果:

The sum is: 5050

在 while 循环中,只要判断条件成立,循环就会执行。对于这段代码,只要变量 i 的值小于等于 100,循环就会继续。每次循环给变量 sum 加上变量 i 的值,然后再给变量 i 加 1,直到变量 i 的值大于 100,循环才会停止。

i++语句使得 i 的值逐步增大,让判断条件越来越趋近于“不成立”,最终退出循环。

until命令

until命令和while命令工作方式完全相反
until命令要求制定一个通常输出非零退出状态码的测试命令
只有测试命令的退出状态码非零,bash shell才会指定循环中列出的那些命令
一旦测试命令返回了退出状态码0,循环就结束了
until 命令格式如下
until test commands
do
other commands
done
cat /test12
#!/bin/bash
using the until command
var1=100
until[ $var1 -eq 0]
do
echo var1var1=[var1var1=[var1var1=[var1 -25 ]
done

$./test12
100
75
50
25
$本例中会测试var1变量来决定until循环何时停止。只要该变量值等于0,until命令就会停止循环。
connitue 。。。。。。嵌套循环

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » shell while until循环讲解