首页 > 代码库 > Linux下shell中case命令详解(常规的break、无条件继续和有条件继续)
Linux下shell中case命令详解(常规的break、无条件继续和有条件继续)
linux下shell中的case名字和C/C++中的switch类似,但是shell中的case更强大和复杂。
1、强大主要体现在:shell中case中的关键字可以是字符串类型,而每一项中可以包含正则表达式。
2、复杂主要体现在:shell中case的每一个项后有三个选择:break(常规的break)、unconditional follow up(无条件继续)和conditional follow up(有条件继续)。
这篇文章的重点是上面的第2点。
case的无条件继续和有条件继续是bash 4.1.x及之后的版本中才有的特性。
执行如下命令可以查看你当前bash的版本
echo $BASH_VERSION
常规的break是在每一项后面加;;
无条件继续是在每一项后面加;&
有条件继续实在每一项后面加;;&
测试代码
#!/bin/bash echo "Test No.1 ..." case "1" in 1) echo '1' ;;& 2) echo '2' ;; 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;; esac echo "Test No.2 ..." case "1" in 1) echo '1' ;; 2) echo '2' ;;& 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;; esac echo "Test No.3 ..." case "1" in 1) echo '1' ;& 2) echo '2' ;; 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;; esac echo "Test No.4 ..." case "1" in 1) echo '1' ;; 2) echo '2' ;& 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;; esac测试结果:
Test No.1 ... 1 ? Test No.2 ... 1 Test No.3 ... 1 2 Test No.4 ... 1
Linux下shell中case命令详解(常规的break、无条件继续和有条件继续)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。