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

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

Bash 条件ステートメントは、プログラマーが指定したブール条件が true と評価されるか false と評価されるかによって、異なる計算またはアクションを実行します。これらのステートメントは、特定の条件が真であるかどうかに応じて、シェル プログラムのさまざまな部分を実行するために使用されます。分岐機能により、シェル スクリプトは強力になります。

Bash には、次の条件ステートメントがあります。

<オール>
  • if..then..fi ステートメント (単純な If)
  • if..then..else..fi ステートメント (If-Else)
  • if..elif..else..fi ステートメント (Else If はしご)
  • if..then..else..if..then..fi..fi..(ネストされた if)
  • これらは、前に説明した awk if ステートメントに似ています。

    1. Bash If..then..fi ステートメント

    if [ conditional expression ]
    then
    	statement1
    	statement2
    	.
    fi

    このif文は簡易if文とも呼ばれます。指定された条件式が真の場合、キーワード「then」と「fi」で囲まれたステートメントに入り、実行します。指定された式がゼロを返す場合、結果ステートメント リストが実行されます。

    if then fi 例:

    #!/bin/bash
    count=100
    if [ $count -eq 100 ]
    then
      echo "Count is 100"
    fi

    2. Bash If..then..else..fi ステートメント

    If [ conditional expression ]
    then
    	statement1
    	statement2
    	.
    else
    	statement3
    	statement4
    	.
    fi

    条件式が真の場合、statement1、2 を実行します。条件式が 0 を返した場合、else 部分にジャンプし、statement3、4 を実行します。if/else 部分の実行後、後続ステートメントから実行が再開されます。

    if then else fi 例:

    #!/bin/bash
    count=99
    if [ $count -eq 100 ]
    then
      echo "Count is 100"
    else
      echo "Count is not 100"
    fi

    注: この記事は、進行中の Bash チュートリアル シリーズの一部です。

    3. Bash If..elif..else..fi

    If [ conditional expression1 ]
    then
    	statement1
    	statement2
    	.
    elif [ conditional expression2 ]
    then
    	statement3
    	statement4
    	.
    .
    .
    else
    	statement5
    fi

    多数のコード ブロックから 1 つを選択して実行する場合は、これを if .. elif.. if で使用できます。式 1 をチェックし、真であればステートメント 1,2 を実行します。式 1 が false の場合、式 2 をチェックし、すべての式が false の場合は、else ブロックに入り、else ブロック内のステートメントを実行します。

    if then elif then else fi 例:

    #!/bin/bash
    count=99
    if [ $count -eq 100 ]
    then
      echo "Count is 100"
    elif [ $count -gt 100 ]
    then
      echo "Count is greater than 100"
    else
      echo "Count is less than 100"
    fi

    4. Bash If..then..else..if..then..fi..fi..

    If [ conditional expression1 ]
    then
    	statement1
    	statement2
    	.
    else
    	if [ conditional expression2 ]
    	then
    		statement3
    		.
    	fi
    fi

    if ステートメントと else ステートメントは、bash でネストできます。キーワード「fi」は内部の if ステートメントの終わりを示し、すべての if ステートメントはキーワード「fi」で終了する必要があります。

    上記の「if then elif then else fi」の例は、以下に示すようにネストされた if に変換できます。

    #!/bin/bash
    count=99
    if [ $count -eq 100 ]
    then
      echo "Count is 100"
    else
      if [ $count -gt 100 ]
      then
        echo "Count is greater than 100"
      else
      echo "Count is less than 100"
      fi
    fi

    次の記事では、Bash の条件式の使用方法と実際の例について説明します。

    推奨読書

    Bash 101 ハック、Ramesh Natarajan 著 .私はほとんどの時間を Linux 環境に費やしています。だから当然、私は Bash のコマンド ラインとシェル スクリプトの大ファンです。 15 年前、さまざまな種類の *nix に取り組んでいたとき、C シェルと Korn シェルで多くのコードを記述していました。後年、システム管理者として Linux の作業を開始したとき、Bash シェル スクリプトを使用して、考えられるすべてのタスクをほぼ自動化しました。私の Bash での経験に基づいて、Bash コマンド ラインとシェル スクリプトの両方に関する 101 の実用的な例を含む Bash 101 Hacks eBook を作成しました。 Bash の習得を考えている場合は、ぜひこの本を読んでください。Bash のコマンド ラインとシェル スクリプトを制御するのに役立ちます。


    Linux
    1. 6 Bash 条件式の例 ( -e, -eq, -z, !=, [, [[ ..)

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

    3. Bash for ループの例

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

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

    3. 4 Awk If ステートメントの例 ( if, if else, if else if, :? )

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

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

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