条件式に複数の条件を指定したい場合があります。
例えば、「入力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 |