通常,我们使用 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