Unix / Linux - Shell 布尔运算符示例
Bourne Shell 支持以下布尔运算符。
假设变量a为10,变量b为20 −
运算符 | 说明 | 示例 |
---|---|---|
! | 这是逻辑非。 这会将 true 条件反转为 false,反之亦然。 | [ ! false ] 为 true。 |
-o | 这是逻辑OR。 如果其中一个操作数为真,则条件变为真。 | [ $a -lt 20 -o $b -gt 100 ] 为 true。 |
-a | 这是逻辑AND。 如果两个操作数都为真,则条件为真,否则为假。 | [ $a -lt 20 -a $b -gt 100 ] 为 false。 |
示例
这是一个使用了所有布尔运算符的例子 −
#!/bin/sh a=10 b=20 if [ $a != $b ] then echo "$a != $b : a is not equal to b" else echo "$a != $b: a is equal to b" fi if [ $a -lt 100 -a $b -gt 15 ] then echo "$a -lt 100 -a $b -gt 15 : returns true" else echo "$a -lt 100 -a $b -gt 15 : returns false" fi if [ $a -lt 100 -o $b -gt 100 ] then echo "$a -lt 100 -o $b -gt 100 : returns true" else echo "$a -lt 100 -o $b -gt 100 : returns false" fi if [ $a -lt 5 -o $b -gt 100 ] then echo "$a -lt 100 -o $b -gt 100 : returns true" else echo "$a -lt 100 -o $b -gt 100 : returns false" fi
上面的脚本会产生下面的结果 −
10 != 20 : a is not equal to b 10 -lt 100 -a 20 -gt 15 : returns true 10 -lt 100 -o 20 -gt 100 : returns true 10 -lt 5 -o 20 -gt 100 : returns false
使用运算符需要注意以下几点 −
运算符和表达式之间必须有空格。 例如,2+2 是不正确的; 应该写成2 + 2。
if...then...else...fi 语句是决策语句,在下一章中解释。