バッシュcase
ステートメントは通常、複数の異なる選択肢がある場合に複雑な条件を単純化するために使用されます。 case
を使用する ネストされたif
の代わりにステートメント ステートメントは、bashスクリプトを読みやすく、保守しやすくするのに役立ちます。
バッシュのcase
ステートメントは、JavascriptまたはCの switch
と同様の概念を持っています 声明。主な違いは、Cの switch
とは異なり、 ステートメント、Bash case
ステートメントは、パターンマッチを見つけて、そのパターンに関連付けられたステートメントを実行すると、パターンマッチの検索を続行しません。
このチュートリアルでは、Bashの case
の基本について説明します。 ステートメントを作成し、シェルスクリプトでの使用方法を示します。
ケース
ステートメント構文#
バッシュのcase
ステートメントは次の形式を取ります:
case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
- 各
case
ステートメントはcase
で始まります キーワード、ケース式、in
が続きます キーワード。ステートメントはesac
で終わります キーワード。 -
|
で区切られた複数のパターンを使用できます オペレーター。)コード> オペレーターはパターンリストを終了します。
- パターンには特殊文字を含めることができます。
- パターンとそれに関連するコマンドは、句と呼ばれます。
- 各句は
;;
で終了する必要があります 。 - 式に一致する最初のパターンに対応するコマンドが実行されます。
- ワイルドカードのアスタリスク記号(
*
)を使用するのが一般的な方法です。 )デフォルトのケースを定義するための最終パターンとして。このパターンは常に一致します。 - 一致するパターンがない場合、戻りステータスはゼロです。それ以外の場合、戻りステータスは実行されたコマンドの終了ステータスです。
case
を使用した例を次に示します。 特定の国の公用語を出力するbashスクリプトのステートメント:
#!/bin/bash
echo -n "Enter the name of a country: "
read COUNTRY
echo -n "The official language of $COUNTRY is "
case $COUNTRY in
Lithuania)
echo -n "Lithuanian"
;;
Romania | Moldova)
echo -n "Romanian"
;;
Italy | "San Marino" | Switzerland | "Vatican City")
echo -n "Italian"
;;
*)
echo -n "unknown"
;;
esac
カスタムスクリプトをファイルとして保存し、コマンドラインから実行します。
bash languages.sh
スクリプトは国を入力するように要求します。たとえば、「リトアニア」と入力すると、最初のパターンと一致し、 echo
その句のコマンドが実行されます。
スクリプトは次の出力を出力します:
Enter the name of a country: Lithuania
The official language of Lithuania is Lithuanian
デフォルトのワイルドカードアスタリスク記号以外の他のパターンと一致しない国を入力した場合、たとえばアルゼンチンの場合、スクリプトは echo
を実行します。 デフォルト句内のコマンド。
Enter the name of a country: Argentina
The official language of Argentina is unknown
結論#
これで、bash case
の記述方法を十分に理解できたはずです。 ステートメント。これらは、コマンドラインからシェルスクリプトにパラメータを渡すためによく使用されます。たとえば、initスクリプトは case
を使用しています サービスを開始、停止、または再開するためのステートメント。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。