zoukankan      html  css  js  c++  java
  • [shell]流程控制----case语句

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

    case 值 in
    模式1)
        command1
        command2
        ...
        commandN
        ;;
    模式2)
        command1
        command2
        ...
        commandN
        ;;
    esac
    

    case工作方式如上所示。取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。

    取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。
    例:

    g2_user=0
    g2_userdebug=0
    g2=0
    
    case $1 in
    g2_user)
        g2_user=1
        ;;
    g2_userdebug)
        g2_userdebug=1
        ;;
    g2)
        g2=1
        ;;
    *)
        echo "Wrong param for compile module!"
        echo "The param can be one of below:"
        echo "g2_user;g2_userdebug;g2"
        exit 1
    esac
    

    上面的脚本会取脚本执行时所输入的第一个参数的值,与每一种模式进行匹配:
    输入不同的内容,会有不同的结果,例如:

    输入 g2_user:
    g2_user=1(g2_user变量被赋值1,根据变量值可做后续脚本的处理)
    输入 g2-user:
    界面echo的结果:

    Wrong param for compile module!
    The param can be one of below:
    g2_user;g2_userdebug;g2
    

    并且脚本异常退出!

  • 相关阅读:
    NSString 处理
    我的第一个IOSDemo
    NSArray创建和使用
    NSDate
    NSDictionary
    flash全屏代码
    getBounds
    运用递归随机出与上一个数不重复的数
    标签跟随鼠标移动
    保存数据到本地
  • 原文地址:https://www.cnblogs.com/wucaiyun1/p/11009964.html
Copyright © 2011-2022 走看看