GNU/Linux >> Linux の 問題 >  >> Linux

Bashケースステートメント

バッシュ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スクリプトのステートメント:

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

スクリプトは国を入力するように要求します。たとえば、「リトアニア」と入力すると、最初のパターンと一致し、 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を使用しています サービスを開始、停止、または再開するためのステートメント。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. Bashスクリプトでifelse条件文を使用する方法

  2. 例を含む Bash If-Else ステートメント

  3. 5 Bash Case ステートメントの例

  1. Bashでのケースステートメントの使用

  2. 4 Bash If ステートメントの例 ( If then fi, If then else fi, If elif else fi, Nested if )

  3. Bash/sh 'if else' ステートメント

  1. Bash if elif elseステートメント:包括的なチュートリアル

  2. Linux bash、ダッシュで区切るキャメルケース文字列

  3. bashにgotoステートメントはありますか?