在流行的命令式语言中,一旦case语句已匹配,switch语句通常会“跳入”下一个级别。
例:
int a = 2;
switch(a)
{
case 1:
print "quick ";
case 2:
print "brown ";
case 3:
print "fox ";
break;
case 4:
print "jumped ";
}
会打印“棕狐”。
但是bash中的相同代码
A=2
case $A in
2)
echo "QUICK"
;&
2)
echo "BROWN"
;&
3)
echo "FOX"
;&
4)
echo "JUMPED"
;&
esac
仅打印“棕色”
我如何使bash中的case语句“跌落”到其余条件(如第一个示例)?
(编辑:Bash版本3.2.25,;&语句(来自wiki)导致语法错误)
运行:
test.sh:
#!/bin/bash
A=2
case $A in
1)
echo "QUICK"
;&
2)
echo "BROWN"
;&
3)
echo "FOX"
;&
esac
给出:
./test.sh:第6行:意外令牌附近的语法错误 ;&'
;' ./test.sh:
line 6:
|
表达式中分隔多个模式的运算符case
)。