一般的な命令型言語では、通常、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
「BROWN」のみ印刷
最初の例のように、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: