シェルスクリプトで条件文の使用方法について説明します。
1. Syntax
Syntaxは次のとおりです。他の言語の条件文と同じようにif、if-else、if-elif-elseパターンのように使用することができます。
if [ expression ]
then
statement
elif [ expression ]
then
statement
else
statement
fi
2. Example: if-else
以下は、if-elseを使用する例です。 $a = $b
は、aとbが同じ場合True、異なる場合にはFalseになります。
#!/bin/bash
a=10
b=20
if [ $a = $b ]
then
echo "a is equal to b"
else
echo "a is not equal to b"
fi
Output:
$ bash example.sh
a is not equal to b
3. テスト演算子
テスト演算子は2つの変数を比較したり、ファイルの種類や権限を検査する演算子です。
if [ statement ]
でテスト演算子を使用して、条件式を作成することができます。
次のようなテスト演算子があり、意味は下記の通りです。
Operator | Description Value |
---|---|
! EXPRESSION | The EXPRESSION is false. |
-n STRING | The length of STRING is greater than zero. |
-z STRING | The lengh of STRING is zero (ie it is empty). |
STRING1 = STRING2 | STRING1 is equal to STRING2 |
STRING1 != STRING2 | STRING1 is not equal to STRING2 |
INTEGER1 -eq INTEGER2 | INTEGER1 is numerically equal to INTEGER2 |
INTEGER1 -gt INTEGER2 | INTEGER1 is numerically greater than INTEGER2 |
INTEGER1 -lt INTEGER2 | INTEGER1 is numerically less than INTEGER2 |
-d FILE | FILE exists and is a directory. |
-e FILE | FILE exists. |
-r FILE | FILE exists and the read permission is granted. |
-s FILE | FILE exists and it's size is greater than zero (ie. it is not empty). |
-w FILE | FILE exists and the write permission is granted. |
-x FILE | FILE exists and the execute permission is granted. |
4. Example: if-elif-else
以下は、if-elif-elseを使用する例です。 [ $a -lt $b ]
は a < b
の意味です。
#!/bin/bash
a=10
b=20
if [ $a = $b ]
then
echo "a is equal to b"
elif [ $a -lt $b ]
then
echo "a is less than b"
else
echo "a is not equal to b"
fi
Output:
$ bash example.sh
a is less than b
5. Example: if not..
[ expression ]
にnotを適用するには、 ! [ expression ]
または[ ! expression ]
のように表現!を付けるされます。
#!/bin/bash
a=10
b=20
if ! [ $a = $b ]
then
echo "a is not equal to b"
else
echo "a is equal to b"
fi
Output:
a is not equal to b
6. ORまたはAND演算子
二つの条件にORまたはAND演算子を適用することができます。
AND演算子は、 [ expression ] && [ expression ]
のように使用することができます。
#!/bin/bash
a=10
b=20
if [ $a = 10 ] && [ $b = 20 ]
then
echo "a is 10 and b is 20"
fi
Output:
a is 10 and b is 20
OR演算子は、 [ expression ] || [ expression ]
のようにように使用することができます。
#!/bin/bash
a=10
b=20
if [ $a = 10 ] || [ $b = 10 ]
then
echo "a is 10 or b is 10"
fi
Output:
a is 10 or b is 10
References
Related Posts
- Bash Shell - 文字列の出力方法(echo, printf)
- Bash Shell - 数値比較演算子
- Bash Shell - 変数が定義されているかどうかを確認する方法
- Bash Shell - スリープ関数、特定の時間を停止する
- Bash Shell - 文字列 切り出し(substring、split)
- Bash Shell - 日付、時刻を取得する
- Bash Shell - 文字列を連結する方法
- Bash Shell - ファイルの生成と文字列の追加
- Bash Shell - 文字列比較、文字列が含まれているかどうかを確認する
- Bash Shell - 条件文(if-else)
- Bash Shell - 数値演算(プラス、マイナス、乗算、除算)