系统相关
首页 > 系统相关> > 『忘了再学』Shell流程控制 — 38、while循环和until循环介绍

『忘了再学』Shell流程控制 — 38、while循环和until循环介绍

作者:互联网

目录

1、while循环

while循环来讲,只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止。和for循环的第二种格式for((初始值;循环控制条件;变量变化))类似。

我们写个1加到100的例子,这种例子虽然对系统管理帮助不大,但是对理解循环非常有帮助:

while循环语法格式:

while [ 条件判断式 ]
    do
        程序
    done

例子:1加到100。

#!/bin/bash

# 给变量i和变量s赋值
# 从1开始相加
i=1
# 求和变量
sum=0

# 执行while循环求和
# 如果变量i的值小于等于100,则执行循环
while [ $i -le 100 ]
    do
        sum=$(( $sum+$i ))
        i=$(( $i+1 ))
    done

# 输出求和结果
echo "The sum is:$sum"

说明:

while循环在Shell脚本中应用的还是很少的,循环主要使用for循环的第一种格式for 变量 in 值1 值2 值3 …,所以我们能看懂就可以了。

while循环在写算法方面,会很方便。

2、until循环

until循环和while循环相反,until循环时只要条件判断式不成立则进行循环,并执行循环程序。

一旦循环条件成立,则终止循环。

语法如下:

until [ 条件判断式 ]
    do
        程序
    done

还是写从1加到100这个例子,注意和while循环的区别:

#!/bin/bash

# 给变量i和变量s赋值
# 从1开始相加
i=1
# 求和变量
sum=0

# 执行while循环求和
# 如果变量i的值大于100,则执行循环
until [ $i -gt 100 ]
    do
        sum=$(( $sum+$i ))
        i=$(( $i+1 ))
    done

# 输出求和结果
echo "The sum is:$sum"

总结:

while循环和until循环特别容易写成死循环,忘记在循环体内写变量变化了,如i=i+1或者i++等,导致循环的判断条件一直符合条件,循环无法停止,非常消耗系统资源。

标签:Shell,变量,38,sum,while,循环,100,until
来源: https://www.cnblogs.com/liuyuelinfighting/p/16400173.html