Shell 流程控制 - case 多选择语句

Shell 流程控制 - case 多选择语句


简介

  • 子句含右圆括号 " ) " 部分开始。
  • 子句结束符号
    • " ;; " ’ 结束 ’ ,以两个分号结尾,表示只执行当前子句中的关联命令,相当于执行后直接 结束。
    • " ;;& " ’ 继续匹配 ’ ,以两个分号与连字符结尾,表示当前子句的关联命令执行后,会继续去 匹配 后面子句,并执行关联的命令。
    • " ;& " ’ 继续执行 ’ ,继续执行下个子句的关联命令,不论是否匹配。
  • case 语句 以 " case " 结束。
  • 语法格式
    casein
    	分支1)
    	action1
    	;;
    	分支2)
    	action2
    	;;
    	*)
    	action3
    esac
    

参考文档


示例

  • 只执行匹配到的第一个子句。
    [root@ case]# cat test.sh 
    #!/bin/bash
    case $1 in
      linux)
        echo "1" $1
        ;;
      redhat)
        echo "2" $1
        ;;
      *)
        echo "*" $1
    esac
    [root@ case]# sh test.sh linux
    1 linux
    [root@ case]# sh test.sh redhat
    2 redhat
    [root@ case]# sh test.sh centos
    * centos
    [root@ case]#
    

  • 继续匹配,并执行匹配到的子句中的命令。
    [root@ case]# cat test.sh 
    #!/bin/bash
    case $1 in
      linux)
        echo "1" $1
        ;;&
      redhat)
        echo "2" $1
        ;;
      *)
        echo "*" $1
        ;;
    esac
    [root@ case]# sh test.sh linux
    1 linux
    * linux
    [root@ case]# 
    

  • 继续执行下一个子句,不论是否匹配。
    [root@ case]# cat test.sh 
    #!/bin/bash
    case $1 in
      linux)
        echo "1" $1
        ;&
      redhat)
        echo "2" $1
        ;;
      *)
        echo "*" $1
        ;;
    esac
    [root@ case]# sh test.sh linux
    1 linux
    2 linux
    [root@ case]#
    



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值