条件式に複数の条件を指定したい場合があります。
例えば、「入力1が○○であり、かつ、入力2が△△であるときに□□の処理をしたい」と、言った場合です。今回は、if~then~else文で複数の条件を指定するケースを見ていきます。
まずはサンプルのスクリプトを見てください。
#!/bin/bash
echo input1
read i1
echo input2
read i2
if [ $i1 = "0" -a $i2 = "1" ]; then
echo "OK!"
else
echo "NG!"
fi
-aがAnd(かつ)を表します。
上記例では標準入力から2つの値を「i1」「i2」にそれぞれ格納し、「i1」が0かつ「i2」が1なら条件式は真と判定し、then以下の処理を実行します。それ以外ならelse以下の処理が実行されます。
上記シェルスクリプトをファイル名「prog005.sh」として保存したときの例です。
$ chmod u+x prog005.sh $ ./prog005.sh input1 0 input2 1 OK!
「0」と「1」を入力しており、条件式に一致するため、真のブロックの処理が実行され、「OK!」と出力されます。
上記サンプルでは、And(かつ)を使用しましたが、Or(または)も使用できます。
And・Or条件
| 条件 | 演算子 |
|---|---|
| And | -a |
| Or | -o |
