• Shell 脚本学习笔记八:流程控制


    一、 if else      /// 如果else分支没有语句执行,就不要写这个else

        1、if 语句

            if condition

            then

                command1

                command2

                command3

                ...

            fi

            /// 写成一行:

            if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

        2、if else

            if condition

            then

                command1

                command2

                ...

            else

                command

            fi

    #!/bin/bash
    
    num1=100;
    num2=100;
    
    if test $[num1] -eq $[num2]
    then
        echo "两个数相等";
    else
        echo "两个数不相等";
    fi
    
    输出以下结果:
    
    两个数相等

        3、if else-if else

            if condition

            then

                command1

                command2

            elif condition

            then

                command

            else

                command

            fi

    #!/bin/bash
    
    a=10
    b=20
    
    if [ $a == $b ]
    then
        echo "a 等于 b"
    elif [ $a -gt $b ]
    then
        echo "a 大于 b"
    elif [ $a -lt $b ]
    then
        echo "a 小于 b"
    else
        echo "没有符合的条件"
    fi 
    
    输出以下结果:
    
    a 小于 b

    二、for 循环

         for var in item1 item2 ... itemN

        do

            command1

            command2

            ...

        done

        /// 写成一行

        for var in item1 item2 ... itemN; do command1; command2; ... done;

    #!/bin/bash
    
    for loop in 1 2 3 4 5
    do
        echo "$loop";
    done
    
    输出以下结果:
    
    1 
    2
    3
    4 
    5
    
    
    for str in "This is a string"
    do 
        echo "$str";
    done
    
    输出以下结果:
    
    This
    is
    a 
    string

    三、while 语句

        while condition

        do

            command1

        done

    while [ $cnt -le 5 ]
    do
        echo $cnt
        let "cnt++"
    done
    
        echo "按下 <CTRL-D> 退出"

        

      while循环可用于读取键盘信息。下面的例子中,输入信息被设置为变量FILM,按<Ctrl-D>结束循环

        echo "按下 <CTRL-D> 退出"

        echo -n "输入你最喜欢的电影名:"

        while read FILM

        do

            echo "是的!$FILM 是一部好电影"

        done

    四、无限循环

        1、

            while :

            do

                command

            done

        2、

            while true

            do

                command

            done

        3、

            for (( ; ; ))

    五、until 循环

    • until循环执行一系列命令直至条件为真时停止
    • until循环与while循环在处理方式上刚好相反
    •  条件可为任意测试条件,测试发生在循环末尾,因此循环至少执行一次
    •  一般while循环优于until循环,但在某些时候—也只是极少数情况下,until循环更加有用  

        until condition

        do

            command

        done

    六、case

        case 值 in

            模式1)

                command1

                command2

                ...

                ;;

            模式2)

                command1

                command2

                ...

                ;;

        esac

    #!/bin/bash
    
    echo "输入 1 到 4 之间的数字"
    echo "你输入的数字为:"
    
    read aNum
    
    case $aNum in 
        1)
          echo "你选择了 1"
          ;;
        2)
              echo "你选择了 2"
              ;;
        3)
              echo "你选择了 3"
              ;;
        4)
              echo "你选择了 4"
              ;;
    esac

    七、break

        跳出所有循环(终止执行后面的所有循环)

        while :
        do
            echo -n "请输入 1 到 5 之间的数字:"
            read aNum
    case $aNum in 1|2|3|4|5) echo "你输入的数字为: $aNum" ;; *) echo "你输入的数字不是 1 到 5 之间的!结束游戏" break ;; esac done

      

    八、continue

        跳出本次循环

  • 相关阅读:
    错误libvirtError: invalid argument: could not find capabilities for domaintype=kvm
    容器部署ES 和 ES head插件
    squid配置yum源代理服务器
    coredns 1.2.2 反复重启问题
    ansible debugger 模块
    入门篇-contrail-command(对接openstack)All-In-One
    目标文件是什么鬼?
    汇编指令集
    切换GCC编译器版本
    kubernetes-dashboard登录出现forbidden 403
  • 原文地址:https://www.cnblogs.com/fanxiaocong/p/7068903.html
Copyright © 2020-2023  润新知