美文网首页shell
【现学现忘&Shell流程控制】— 49.while循环和unt

【现学现忘&Shell流程控制】— 49.while循环和unt

作者: 繁华似锦Fighting | 来源:发表于2020-11-05 20:11 被阅读0次

    (四)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循环在写算法方面,会很方便。

    (五)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流程控制】— 49.while循环和unt

        本文链接:https://www.haomeiwen.com/subject/ftnuvktx.html