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
-
Bashシェル関数入門:実用的な6つのサンプル例で学ぶチュートリアル
Bashシェル関数とは、複数のUNIX/Linuxコマンドをひとつの名前でグループ化し、後からまとめて実行できるようにする仕組みです。Bashシェル関数は通常のUnixコマンドと同じように呼び出すことができ、現在のシェルコンテキスト内で実行されるため、解釈用の新しいプロセスを生成する必要がありません。bashのエイリアス(alias)と関数はどちらも、長いコマンドや複雑なコマンドに対するショートカットを定義するのに役立ちます。しかし、エイリアスでは制御フローや引数の扱いなど、関数ならではの高度な処理を行うことはできません。本記事では、その違いも含めて詳しく解説していきます。この記事は、進行中の
-
実用的な5つの例で学ぶBashスクリプト入門チュートリアル
Unix SedやUnix Awkシリーズと同様に、本シリーズではBashスクリプティングに関する記事を複数回にわたって公開します。実用的なサンプルを交えながら、Bashスクリプティングのテクニックを幅広く解説していきます。 シェルとは、ユーザーが入力したコマンドを解釈して実行するプログラムです。コマンドはユーザーが直接入力するか、「シェルスクリプト」と呼ばれるファイルから読み込まれます。 ユーザーからの入力を直接読み取る場合、そのシェルは対話型(インタラクティブ)シェルと呼ばれます。 一方、ファイルからコマンドを読み込んで実行する場合は非対話型(ノンインタラクティブ)シェルと呼ばれます。この