私はこのようなことをしようとしています:
case $level in
3)
echo "Level Three"
2)
echo "Level Two"
1)
echo "Level one"
;;
esac
$ level = 3の場合、出力されます
Level Three
Level Two
Level One
一方、$ level = 1の場合、出力のみになります
Level One
しかし、試してみると、エラーが発生しましsyntax error near unexpected token ')'
た;;
。
私が知っている他のすべての言語はこれを許可していますが、bashでそれを行う方法はありますか?「次のケースをあたかも一致したかのように実行する」という意味のキーワード
2
知っているすべての言語でこれが許可されている場合は、Cとその模倣者以外の言語を学ぶ必要があります。ケースステートメントのフォールスルーは、Cでの歴史的な設計事故であり、何らかの原則のある言語で生き残ったものです。
—
ジル「SO-悪であるのをやめる」