通常,我们使用 case 结构是不同的分支执行不同的命令,例如
#!/bin/bash
var=a
case "$var" in
a)
echo "case a"
;;
b)
echo "case b"
;;
c)
echo "case c"
;;
*)
echo "case *"
;;
esac
这个脚本每次只能执行一个分支。
如果有两个分支执行相同的动作,那么我们可以合并它们,这就要用 ;& 代替 ;;
#!/bin/bash
var=a
case "$var" in
a)
# ;& 表示继教执行下一个case分支的命令,无论是否匹配
;&
b)
echo "case a or b"
;;
c)
echo "case c"
;;
*)
echo "case *"
;;
esac
这个脚本就把 a 和 b 匹配的分支合并了,使用是就是 ;& 而不是 ;;。
有时候,不止匹配一个分支,为了使匹配上的分支都能执行命令,需要用 ;;& 代替 ;;。
#!/bin/bash
var=a
case "$var" in
a)
# ;;& 表示继匹配后面的分支,而不是结束。
;;&
b)
echo "case a or b"
;;
c)
echo "case c"
;;
*)
echo "case *"
;;
esac
本文深入探讨了Bash脚本中case结构的使用方法,包括如何通过;&和;;&控制多个分支的执行流程,以及如何优化脚本以实现更复杂的逻辑判断。
940

被折叠的 条评论
为什么被折叠?



