概要
[[]] 内の論理演算子は、&& および || を使用することをお勧めします。
[] 内の論理演算子は、-a (and を示す)、-o (or を示す) を使用します。
[[]]形状
論理演算の本質は、演算子の両辺が真偽の 2 つの判定条件であり、これを使用して内容が文字列であるか数値であるかを判定することができます。
以下にシェルの論理演算子を紹介します。変数 a が 10、変数 b が 20 であると仮定します。例は次のとおりであることに注意してください双括号
。
オペレーター | 説明する | 例 |
---|---|---|
&& | 論理積 | [[ $a -lt 100 && $b -gt 100 ]] は false を返します |
|| | 論理和 | [[ $a -lt 100 || $b -gt 100 ]] は true を返します |
例:
#!/bin/bash
a=10
b=20
if [[ $a -lt 100 && $b -gt 100 ]]
then
echo "返回 true"
else
echo "返回 false" #打印
fi
if [[ $a -lt 100 || $b -gt 100 ]]
then
echo "返回 true" #打印
else
echo "返回 false"
fi
[] 形状
単一括弧内ではブール演算を実行できますが、論理 AND、論理 OR 構文も含めることができます。
次の表は、変数 a が 10、変数 b が 20 であると仮定して、一般的に使用されるブール演算子のリストです。
オペレーター | 説明する | 例 |
---|---|---|
! | 演算ではありません。式が true の場合は false を返し、それ以外の場合は true を返します。 | [ ! false ] は true を返します。 |
-o | OR 演算。式の 1 つが true の場合に true を返します。 | [ $a -lt 20 -o $b -gt 100 ] は true を返します。 |
-a | 演算と両方の式が true の場合は true を返します。 | [ $a -lt 20 -a $b -gt 100 ] は false を返します。 |
例:
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com
a=10
b=20
if [ $a != $b ]
then
echo "$a != $b : a 不等于 b" #执行打印
else
echo "$a == $b: a 等于 b"
fi
if [ $a -lt 100 -a $b -gt 15 ]
then
echo "$a 小于 100 且 $b 大于 15 : 返回 true" #执行打印
else
echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi
if [ $a -lt 100 -o $b -gt 100 ]
then
echo "$a 小于 100 或 $b 大于 100 : 返回 true" #执行打印
else
echo "$a 小于 100 或 $b 大于 100 : 返回 false"
fi
if [ $a -lt 5 -o $b -gt 100 ]
then
echo "$a 小于 5 或 $b 大于 100 : 返回 true"
else
echo "$a 小于 5 或 $b 大于 100 : 返回 false" #执行打印
fi