zoukankan      html  css  js  c++  java
  • Shell基础学习(六) 流程控制

    1、if

      if的语法格式

    if conditon
    then
        command1
        command2
           ```
        commandn
    fi

    2、if else

    if conditon
    then
        command1
        command2
           ```
        commandn
    else
        command1
        command2
           ```
        commandn
    fi

    3、if elseif else

    if conditon
    then
        command1
        command2
           ```
        commandn
    else if conditon
        command1
        command2
           ```
        commandn
    else
        command1
        command2
           ```
        commandn
    fi

    4、for循环

    for(var in item1 item2 item3)
    do
    command1
    command2
    ```
    commandn
    done

    5、while

    while condition
    do
        command1
        command2
           ```
        commandn
    done    

    6、until

    until循环执行一系列命令直至条件为真时停止。

    until condition
    do
        command
    done

    7、case

      Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:

      

    casein
    模式1)
        command1
        command2
        ...
        commandN
        ;;
    模式2)
        command1
        command2
        ...
        commandN
        ;;
    esac

    8、break

      break命令允许跳出所有循环(终止执行后面的所有循环)。

      下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,需要使用break命令。

      

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

    9、continue

      continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。

      对上面的例子进行修改:

      

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

    运行代码发现,当输入大于5的数字时,该例中的循环不会结束,语句 echo "游戏结束" 永远不会被执行。

  • 相关阅读:
    MCU软件最佳实践——独立按键
    MCU软件最佳实践——矩阵键盘驱动
    MCU软件最佳实践——使用printf打印数据
    CAP定理图解证明
    类型和变量
    数字ID过长 精度丢失 (已解决:后端方案)
    Springboot 异步线程池配置(小型应用)
    Java 数字 字符串 简单操作
    Java 网络请求
    Java 时间 日 周 月 季 年
  • 原文地址:https://www.cnblogs.com/huixuexidezhu/p/5542225.html
Copyright © 2011-2022 走看看