本文共 908 字,大约阅读时间需要 3 分钟。
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
转载地址:https://blog.csdn.net/weixin_30496999/article/details/116623375 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!