作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如何让switch执行2个case?
我试过下面的代码,但它只执行第一种情况
#!/bin/sh
action="titi"
case "$action" in
toto|titi)
echo "1_$action"
;;
tata|titi)
echo "2_$action"
;;
esac
最佳答案
bash 中的 case
语句仅针对第一个匹配项执行 COMMAND-LIST
中的命令。
但是,在 bash 版本 4
或更高版本中引入了 ;&
终止符。 ;;&
运算符类似于 ;;
,除了 case 语句在执行关联列表后不会终止 - Bash 只是继续测试下一个模式,就好像前一个模式一样不匹配。例如,使用这些终止符,可以将 case 语句配置为针对所有模式进行测试,或在 block 之间共享代码。
引用:摘自 http://wiki.bash-hackers.org/syntax/ccmd/case
因此,如果您有 bash v 4 或更高版本
,这将给出您想要的结果:
#!/bin/sh
action="titi"
case "$action" in
toto|titi)
echo "1_$action"
;;&
tata|titi)
echo "2_$action"
;;
esac
关于linux - 如何让switch执行2个case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17700748/
我是一名优秀的程序员,十分优秀!