zoukankan      html  css  js  c++  java
  • 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

        跳出本次循环

  • 相关阅读:
    108. Convert Sorted Array to Binary Search Tree
    107. Binary Tree Level Order Traversal II
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    104. Maximum Depth of Binary Tree
    103. Binary Tree Zigzag Level Order Traversal
    102. Binary Tree Level Order Traversal
    系统和进程相关信息
    文件I/0缓冲
    系统编程概念(文件系统mount等函数的使用)
  • 原文地址:https://www.cnblogs.com/fanxiaocong/p/7068903.html
Copyright © 2011-2022 走看看