河童äºKoji - ãããã¹ããã¦ã¹
目次:
通常、bash caseステートメントは、複数の異なる選択肢がある場合に複雑な条件を簡素化するために使用されます。 ネストされたifステートメントの代わりにcaseステートメントを使用すると、bashスクリプトを読みやすく、保守しやすくなります。
Bashのcaseステートメントには、JavascriptまたはCのswitchステートメントと同様の概念があります。 主な違いは、Cのswitchステートメントとは異なり、Bashのcaseステートメントは、パターンに関連するステートメントを見つけて実行した後、そのパターンの検索を続行しないことです。
このチュートリアルでは、Bashのcaseステートメントの基本を取り上げ、シェルスクリプトでそれらを使用する方法を示します。
Caseステートメントの構文
Bashのcaseステートメントの形式は次のとおりです。
case EXPRESSION in PATTERN_1) STATEMENTS;; PATTERN_2) STATEMENTS;; PATTERN_N) STATEMENTS;; *) STATEMENTS;; esac
- 各caseステートメントは、
case
キーワードで始まり、その後にcase式とin
キーワードが続きます。 ステートメントはesac
キーワードで終了します|
区切られた複数のパターンを使用できます|
オペレーター。)
演算子はパターンリストを終了します。パターンには特殊文字を含めることができます。パターンとそれに関連するコマンドは句として知られています。各句は;;
で終了する必要があります;;
式に一致する最初のパターンに対応するコマンドが実行されます。ワイルドカードアスタリスク記号(*
)を最終パターンとして使用してデフォルトのケースを定義するのが一般的です。 このパターンは常に一致します。一致するパターンがない場合、戻りステータスはゼロです。 それ以外の場合、戻りステータスは実行されたコマンドの終了ステータスです。
ケースステートメントの例
以下は、特定の国の公用語を印刷するbashスクリプトのcaseステートメントを使用した例です。
languages.sh
#!/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
スクリプトは、国を入力するように求めます。 たとえば、「Lithuania」と入力すると、最初のパターンと一致し、その句の
echo
コマンドが実行されます。
スクリプトは次の出力を印刷します。
Enter the name of a country: Lithuania The official language of Lithuania is Lithuanian
Enter the name of a country: Argentina The official language of Argentina is unknown
結論
ここまでで、bashのcaseステートメントの作成方法を十分に理解できたはずです。 多くの場合、コマンドラインからシェルスクリプトにパラメーターを渡すために使用されます。 たとえば、initスクリプトは、サービスの開始、停止、または再起動にcaseステートメントを使用しています。