Linux シェル,if 文で条件分岐して処理を実行する

スポンサーリンク

鍛錬 366

Linux シェルスクリプト,if 文で条件分岐して処理を実行する

if, elif, else を使用して条件分岐を行う方法についてです。

関連記事:Linux シェル,if文の条件分岐でand・or・notを使う

if のみを使用する場合

以下は、if のみを使用する場合の if 文です。

条件式が真の場合、処理Aが実行されます。

if [ 条件式 ]; then
    処理A
fi

else を使用する場合

以下は、else を使用する場合の if 文です。

条件式が真の場合は処理Aが実行され、条件式が偽の場合は処理Bが実行されます。

if [ 条件式 ]; then
    処理A
else
    処理B
fi

elif を使用する場合

以下は、elif を使用する場合の if 文です。

以下の例では、上から順に条件式の判断が行なわれます。

if [ 条件式A ]; then
    処理A
elif [ 条件式B ]; then
    処理B
else
    処理C
fi

例1:条件式Aが真の場合
  処理Aが実行され、処理Bと処理Cは実行されません。

例2:条件式Bが真の場合
  処理Bが実行され、処理Aと処理Cは実行されません。

例3:条件式Aと条件式Bが偽の場合
  処理Cが実行されます。

 
スポンサーリンク

シェルスクリプト

以下は、if 文について確認しているシェルスクリプト、test_if.sh です。

シェル実行時に引数として指定した数値について、if 文で判断します。

#!/bin/sh

# シェル実行時に引数として指定した数値を格納
num=$1

# 数値が 123 の場合
if [ $num -eq 123 ]; then
	echo "num = 123"
# 数値が 456 の場合
elif [ $num -eq 456 ]; then
	echo "num = 456"
# 数値が 123 でも 456 でもない場合
else
	echo "Numbers are neither 123 nor 456."
fi

実行結果

以下は、上記のシェルスクリプト、test_if.sh を実行して if 文の挙動を確認しています。

***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./test_if.sh 123
num = 123
***@ubuntu:~/***/test/shell$ ./test_if.sh 456
num = 456
***@ubuntu:~/***/test/shell$ ./test_if.sh 789
Numbers are neither 123 nor 456.
スポンサーリンク

シェアする

フォローする