在 Shell 中,逻辑运算符是用于连接多个条件(一般来讲就是关系表达式),最终的结果也是返回真或假,即 0 和 1。
运算符 | 说明 | 范例 |
---|---|---|
&& | 逻辑与 | A && B |
|| | 逻辑或 | A || B |
! | 逻辑非 | !A |
逻辑与,如果 A 和 B 的值都为真,那么结果为真,否则结果为假。如果 A 的值为假,那么不会计算 B 的值,这叫做短路。
逻辑或,只要 A 和 B 的值一个为真,那么结果为真,否则结果为假。如果 A 的值为真,那么不会计算 B 的值,这叫做短路。
逻辑非,如果原来 A 的值为真,那么结果为假。如果原来 A 的值为假,那么结果为真。
使用 && 运算符,实现逻辑与判断
#!/bin/bash
age=40
if (( $age > 30 && $age < 50))
then
echo "Age > 30 and Age < 50"
fi
if (( $age > 40 && $age < 50))
then
echo "Age > 40 and Age < 50"
fi
程序运行后,控制台输出如下:
首先,我们定义了一个 变量 age 并赋值为 40。 接着,我们使用逻辑与运算符 &&,判断变量 age 的值是否大于 30 并且小于 50。
我们再次使用逻辑与运算符 &&,判断变量 age 的值是否大于 40 并且小于 50。
使用 || 运算符,实现逻辑或判断
#!/bin/bash
age=40
if (( $age > 30 || $age < 50))
then
echo "Age > 30 or Age < 50"
fi
if (( $age > 40 || $age < 50))
then
echo "Age > 40 or Age < 50"
fi
程序运行后,控制台输出如下:
首先,我们定义了一个变量 age 并赋值为 40。 接着,我们使用逻辑或运算符 ||,判断变量 age 的值是否大于 30 或者小于 50。
我们再次使用逻辑或运算符 ||,判断变量 age 的值是否大于 40 或者小于 30。
使用 ! 运算符,实现逻辑非判断
#!/bin/bash
a=1
if (( !a ))
then
echo "a is true"
else
echo "a is false"
fi
程序运行后,控制台输出如下:
我们可以看到,非运算是取反操作。
逻辑与,如果 A 和 B 的值都为真,那么结果为真,否则结果为假。如果 A 的值为假,那么不会计算 B 的值,这叫做短路。
逻辑或,只要 A 和 B 的值一个为真,那么结果为真,否则结果为假。如果 A 的值为真,那么不会计算 B 的值,这叫做短路。
逻辑非,如果原来 A 的值为真,那么结果为假。如果原来 A 的值为假,那么结果为真。