以前の記事で、シェルスクリプトの条件式は、他のプログラミング言語と比べて異質であるという話をしました。
本記事では、他のプログラミング言語と同様に条件式を用いる方法を紹介します。
方法
(( ))の中に条件式を入れることで、他のプログラミング言語と同様に条件式を用いることができます。
例を示します。
算術式を使用しない例
num=12
if [ $num -lt 10 ]
then
echo "This number is grater than 10."
fi
算術式を使用した例
num=12
if (( $num > 10 ))
then
echo "This number is grater than 10."
fi
注意
この算術式は、bashしか使えません。試しに、算術式を使用した上記のプログラムをbashコマンドとshコマンドで比較しましょう。
bashコマンド
$ bash sample.sh
This number is grater than 10.
shコマンド
$ sh sample.sh
sample.sh: 4: 12: not found
このようにshコマンドでは、使用できません。他のシェルも同様です。
次に算術式を用いた構文を紹介します。
数値の比較
条件式 | 実行結果 |
数値1<= 数値2 | 数値2が数値1より小さいか等しければ真 |
数値1 >= 数値2 | 数値1が数値2より小さいか等しければ真 |
数値1 < 数値2 | 数値2が数値1より大きいと真 |
数値1 > 数値2 | 数値1が数値2より大きいと真 |
数値1 == 数値2 | 数値1と数値2が等しければ真 |
数値1!= 数値2 | 数値1と数値2が等しくなければ真 |
文字列の比較
条件式 | 実行結果 |
文字列1== 文字列2 | 2つの文字列が等しければ真 |
文字列1 != 文字列2 | 2つの文字列が等しくなければ真 |
論理結合
条件式 | 実行結果 |
!条件式 | 条件式が偽であれば真 |
条件式1 && 条件式2 | 条件式1と条件式2の両方が真であれば真 |
条件式1 || 条件式2 | 条件式1か条件式2のいずれかが真であれば真 |
まとめ
(( ))の中に条件式を入れることで、他のプログラミング言語と同様に条件式を用いることができます。
しかし、bashコマンドのみ使用できる構文です。