在流行的命令式語言中,一旦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語句「砸鍋」像第一個例子中的其餘條件?
(編輯:猛砸版本3.2.25的; &聲明(from 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:
添加錯誤;& – Resorath 2012-08-17 18:05:56
相關(但不重複)的問題: [切換案例與fallthrough?](http://stackoverflow.com/q/5562253)(關於'|'操作符分離'case'表達式中的多個模式)。 – TachyonVortex 2015-07-02 09:41:16