option="${1}"
case ${option} in
1) do A
do B
;;
2) do A
do B
do C
;;
3) do A
do B
do C
;;
esac
上面,我正在为案例2&重复'做C' 3.有没有一种方法可以定义适用于所有情况的案例,除了案例1或适用于案例2,3,5的案例)(基本上以我想要的情况为准)
喜欢:
allExceptCase1)
或Only2,3,5AndNotTheOthers)
答案 0 :(得分:2)
我在这里介绍了一个包含两个值的案例和另一个"默认"子句。
case ${option} in
1) do A
do B
;;
2|3) do A
do B
do C
;;
*) do D
;;
esac
RTFM:(http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_03.html)
答案 1 :(得分:2)
case
语句中的每个选项都是独立的,但它们是由shell 模式定义的。因此你可以这样做:
case ${option} in
1) do A
do B
;;
[23])
do A
do B
do C
;;
esac
您也可以嵌套案例陈述,因此您也可以这样做:
case ${option} in
[123])
do A
do B
case ${option} in
[23]) do C
;;
esac
;;
esac
如果您愿意假设${option}
始终是1
,2
或3
,那么您也可以这样做:
do A
do B
case ${option} in
[23])
do C
;;
esac