Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Bashのif-else文を例付きで解説!基本構文からネスト処理まで

Bashスクリプトにおけるif-else文は、他のプログラミング言語と同様に、プログラムが条件に応じて判断(分岐)を行うための仕組みです。

if-else文では、ifの条件が真(true)か偽(false)かという評価結果に基づいて、どのコードブロックを実行するかが決まります。

Bashのif-else文の基本構文

Bashにおけるif-else文の基本的な構文は以下のとおりです。

if [condition]
then
    //ifブロックのコード
else
   // elseブロックのコード
fi

条件がtrueと評価されればifブロック内のコードが実行され、falseと評価されればelseブロック内のコードが実行されます。

ポイント:
ifブロックは、条件がtrueと評価された場合にのみ実行されます。
else文とelseコードブロックは省略可能です。

なお、if文は必ずfiキーワードで閉じる必要があります。

条件式で使う比較演算子

条件式として使われる表現は、trueまたはfalseのいずれかに評価される必要があります。単一の文字列や変数でも構いません。

  • より小さい(未満)$a -lt $b または $a < $b
  • より大きい$a -gt $b または $a > $b
  • 以下$a -le $b または $a <= $b
  • 以上$a -ge $b または $a >= $b
  • 等しい$a -eq $b または $a == $b
  • 等しくない$a -ne $b または $a != $b

論理演算子

if文の中の条件式は、複数の比較を論理的に組み合わせたものにすることもできます。

主な論理演算子は次のとおりです。

  • 論理AND$a AND $b または $a && $b — 両方の変数や条件がtrueの場合にのみtrueと評価されます。
  • 論理OR$a OR $b または $a || $b — どちらか一方でもtrueであればtrueと評価されます。

注意: 論理演算子を使用する場合は、条件式を二重角括弧 [[ ]] で囲む必要があります。

記述例:

#!/bin/bash

first_name="John"
last_name="Doe"

if [[ $first_name = "John" && $last_name = "Doe" ]]
then
echo 'hello John Doe'
fi

Bashのif文の例

if文は最もシンプルな条件分岐です。if [ ]内の条件がtrueと評価された場合にのみ、ifブロック内のコードが実行されます。

例:

#!/bin/bash

read -p "Enter a number: " mynumber

if [ $mynumber -gt 10 ]
then
    echo "The number you entered is greater than 10"
fi

注意: 上記の例では、10未満の数値を入力すると何も表示されません。

Bashのif-else文の例

if条件の結果がfalseになった場合、elseブロックが存在していれば、その中のコードが代わりに実行されます。

例:

#!/bin/bash

read -p "Enter a number: " mynumber

if [ $mynumber -gt 10 ]
then
    echo "The number you entered is greater than 10"
else
    echo "The number you entered is less than 10"
fi

Bashのif-elif-else文の例

elif(else if)は、複数のif条件を順番に判定したい場合に使用します。上から順に条件が評価され、最初にtrueとなったブロックだけが実行されます。

例:

#!/bin/bash

read -p "Enter your exam grade: " grade

if [ $grade -ge 80 ]
then
    echo "You got A"

elif [ $grade -ge 70 ]
then
    echo "You got B"

elif [ $grade -ge 60 ]
then
    echo "You got C"
else
    echo "Fail"
fi

Bashのネストしたif文の例

if文は入れ子(ネスト)構造にすることもできます。外側の条件が満たされた場合に、さらに内側の条件を判定したいときに便利です。

例:

#!/bin/bash

read -p "Enter value of a :" a
read -p "Enter value of b :" b
read -p "Enter value of c :" c

if [ $a -gt $b ]
then
    if [ $a -gt $c ]
    then
        echo "a is greatest"
    else
        echo "c is greatest"
    fi
else
    if [ $b -gt $c ]
    then
        echo "b is greatest"
    else
 echo "c is greatest"
    fi
fi
  1. Bashシェル関数入門:実用的な6つのサンプル例で学ぶチュートリアル

    Bashシェル関数とは、複数のUNIX/Linuxコマンドをひとつの名前でグループ化し、後からまとめて実行できるようにする仕組みです。Bashシェル関数は通常のUnixコマンドと同じように呼び出すことができ、現在のシェルコンテキスト内で実行されるため、解釈用の新しいプロセスを生成する必要がありません。bashのエイリアス(alias)と関数はどちらも、長いコマンドや複雑なコマンドに対するショートカットを定義するのに役立ちます。しかし、エイリアスでは制御フローや引数の扱いなど、関数ならではの高度な処理を行うことはできません。本記事では、その違いも含めて詳しく解説していきます。この記事は、進行中の

  2. 実用的な5つの例で学ぶBashスクリプト入門チュートリアル

    Unix SedやUnix Awkシリーズと同様に、本シリーズではBashスクリプティングに関する記事を複数回にわたって公開します。実用的なサンプルを交えながら、Bashスクリプティングのテクニックを幅広く解説していきます。 シェルとは、ユーザーが入力したコマンドを解釈して実行するプログラムです。コマンドはユーザーが直接入力するか、「シェルスクリプト」と呼ばれるファイルから読み込まれます。 ユーザーからの入力を直接読み取る場合、そのシェルは対話型(インタラクティブ)シェルと呼ばれます。 一方、ファイルからコマンドを読み込んで実行する場合は非対話型(ノンインタラクティブ)シェルと呼ばれます。この