在流行的命令式语言中,一旦匹配了 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)导致语法错误)
跑步:
测试.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: