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/bashecho "Test No.1 ..."case "1" in    1)        echo '1'        ;;&    2)        echo '2'        ;;    3)        echo '3'        ;;    ?)        echo '?'        ;;    *)        echo '*'        ;;esacecho "Test No.2 ..."case "1" in    1)        echo '1'        ;;    2)        echo '2'        ;;&    3)        echo '3'        ;;    ?)        echo '?'        ;;    *)        echo '*'        ;;esacecho "Test No.3 ..."case "1" in    1)        echo '1'        ;&    2)        echo '2'        ;;    3)        echo '3'        ;;    ?)        echo '?'        ;;    *)        echo '*'        ;;esacecho "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 ...1Test No.3 ...12Test No.4 ...1

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部