zoukankan      html  css  js  c++  java
  • Shell编程-07-Shell中的case语句


        case语句相当于多分支的if/elif/else语句,而在使用case会让脚本看起来更简单工整。在case语句中,程序会将获取到的值与case表达式中的条件逐一进行对比,如果匹配则执行对应的语句,遇到双分号(;;)则停止执行。如果一直未找到匹配项,则执行*)后面的语句,相当其他语言中的default功能。

    基本语法

    case "var" in
       value 1)
         语句
    	 ;;
       value 2)
         语句
    	 ;;
       value n)
         语句
    	 ;;
       *)
         语句
    esac
    

    最后一个分支语句,即esac前,可以省略双分号

    case示例

    [root@localhost Test]# cat case.sh
    #!/bin/bash
    a=$1
    case "${a}" in
      1)
       echo "input number is 1"
       ;;
      2)
       echo "input number is 2"
       ;;
      3)
       echo "input number is 3"
       ;;
      *)
       echo "case default value"
    esac
    
    [root@localhost Test]# bash case.sh 1
    input number is 1   # 匹配条件1
    [root@localhost Test]# bash case.sh 3
    input number is 3   # 匹配条件3
    [root@localhost Test]# bash case.sh a
    case default value   # 未匹配到条件
    

    使用if语句同样可以达到同样的效果

    [root@localhost Test]# cat caseif.sh 
    #!/bin/bash
    a=$1
    if [ ${a} -eq 1 ]
      then
       echo "input number is 1"
    elif [ ${a} -eq 2 ]
       then
        echo "input number is 2"
    elif [ ${a} -eq 3 ]
       then
         echo "input number is 3"
    else
      echo "case default value"
    fi
    
    [root@localhost Test]# bash caseif.sh 1
    input number is 1
    [root@localhost Test]# bash caseif.sh 3
    input number is 3
    [root@localhost Test]# bash caseif.sh a
    caseif.sh: 第 3 行:[: a: 期待整数表达式
    caseif.sh: 第 6 行:[: a: 期待整数表达式
    caseif.sh: 第 9 行:[: a: 期待整数表达式
    case default value
    
    

    case语句总结

    • 1、case语句比较适合变量值较少且为固定的数字或字符串集合的情况。
    • 2、case一般常用于编写服务的启动脚本等
    • 3、if则是取值进行判断比较,应用面比case要广,大部分的case语句可以使用if进行替代

    本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:
    MyQRCode.jpg

  • 相关阅读:
    AndroidStudio项目CMakeLists解析
    Xposed那些事儿 — xposed框架的检测和反制
    从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
    编译Xposed
    常用的delphi 第三方控件
    delphi安装控件
    delphi控件安装与删除
    从今天开始,每天都要写博客,加油
    关于ArrayAdapter的getCount()的方法会造成空指针异常的分析
    实现ListView的加载更多的效果,如何将按钮布局到始终在ListView的最后一行
  • 原文地址:https://www.cnblogs.com/surpassme/p/9980024.html
Copyright © 2011-2022 走看看