Unix-case-esac-statement
提供:Dev Guides
Unix/Linuxシェル-case … esacステートメント
複数の if … elif ステートメントを使用して、多方向ブランチを実行できます。 ただし、これは、特にすべてのブランチが単一の変数の値に依存している場合は特に、常に最適なソリューションではありません。
シェルは、この状況を正確に処理する case … esac ステートメントをサポートし、if … elifステートメントを繰り返すよりも効率的です。
構文
インタープリターは、一致が見つかるまで、式の値に対して各ケースをチェックします。 一致するものがない場合、デフォルトの条件が使用されます。
ここでは、一致するものが見つかるまで、文字列の単語がすべてのパターンと比較されます。 一致するパターンに続くステートメントが実行されます。 一致するものが見つからない場合、caseステートメントはアクションを実行せずに終了します。
パターンの最大数はありませんが、最小は1です。
ステートメント部分が実行されると、コマンド;;プログラムフローがcaseステートメント全体の最後にジャンプすることを示します。 これは、Cプログラミング言語のbreakと似ています。
例
実行すると、次の結果が表示されます-
caseステートメントの良い使用法は、次のようにコマンドライン引数を評価することです-
ここに上記のプログラムの実行例があります-