導(dǎo)讀Shell 和其他編程語(yǔ)言一樣,支持多種運(yùn)算符,原生bash不支持簡(jiǎn)單的數(shù)學(xué)運(yùn)算,但是可以通過(guò)其他命令來(lái)實(shí)現(xiàn),例如 awk 和 expr,expr 最常用。
expr 是一款表達(dá)式計(jì)算工具,使用它能完成表達(dá)式的求值操作。
布爾運(yùn)算符
下面列出了常用的布爾運(yùn)算符,假定變量 a 為 10,變量 b 為 20:
運(yùn)算符說(shuō)明舉例!非運(yùn)算,表達(dá)式為 true 則返回 false,否則返回 true。[ ! false ] 返回 true。-o或運(yùn)算,有一個(gè)表達(dá)式為 true 則返回 true。[ $a -lt 20 -o $b -gt 100 ] 返回 true。-a與運(yùn)算,兩個(gè)表達(dá)式都為 true 才返回 true。[ $a -lt 20 -a $b -gt 100 ] 返回 false。
實(shí)例
布爾運(yùn)算符實(shí)例如下:
#!/bin/bash
# author:菜鳥(niǎo)教程
# url:runoob
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
執(zhí)行腳本,輸出結(jié)果如下所示:
10 != 20 : a 不等于 b
10 小于 100 且 20 大于 15 : 返回 true
10 小于 100 或 20 大于 100 : 返回 true
10 小于 5 或 20 大于 100 : 返回 false
邏輯運(yùn)算符
以下介紹 Shell 的邏輯運(yùn)算符,假定變量 a 為 10,變量 b 為 20:
運(yùn)算符說(shuō)明舉例&&邏輯的 AND[[ $a -lt 100 && $b -gt 100 ]] 返回 false||邏輯的 OR[[ $a -lt 100 || $b -gt 100 ]] 返回 true
實(shí)例
邏輯運(yùn)算符實(shí)例如下:
實(shí)例
#!/bin/bash
# author:菜鳥(niǎo)教程
# url:runoob
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
執(zhí)行腳本,輸出結(jié)果如下所示:
返回 false
返回 true
本文原創(chuàng)地址:https://linuxprobe/shell-boolean-operators.html


