运算
语法:
(
(
运
算
式
)
)
、
((运算式))、
((运算式))、[运算式]
expr a + b:加
expr a - b:减
expr a * b:乘`
expr a / b:除
expr a % b:求余
a=b:将b的值赋给a
a == b:判断a是否等于b,返回结果为布尔值
a != b:判断a是否不等于b,返回结果为布尔值
注意:shell的字符型数值运算时,运算符与数值间存在空格,否则会被识别为一个字符串,而不是运算。
复合运算
# 符号``代替数学运算中的()
expr `expr a+b` + c #等同数学中的(a+b)+c
expr `expr a /b` \* c #等同数学中的(a/b)*c
如:
#加
expr 1+2
#减
expr 1-2
#乘
expr 1 \* 2
#复合计算
expr `expr 2 + 3` \* 4
关系运算符
[ judgeStatement ]
说明:其中judgeStatement代表判断表达式,前后与[]间必须均存在空格,判断的结果以布尔值作为返回值显示。
数值比较
大于(-gt):[ a -ge b],判断a是否大于b(>)。
小于(-lt):[ a -lt b],判断a是否小于b(<)。
小于等于(-le):[ a -le b],判断a是否小于等于b(<=)。
大于等于(-ge):[ a -ge b],判断a和b是否相等(>=)。
相等(-eq):[ a -eq b],判断a和b是否相等。
不相等(-ne):[ a -ne b],判断a和b是否不相等。
如:
#这里$?是根据最后一次执行的命令的返回值判断是否产生了错误。0为正确,其他则为错误。
[ 23 -gt 22 ]
echo $? #正确,输出为0
布尔运算符
!:非运算,返回与结果相反的布尔值。
如:
[ ! false ]
echo $? #结果为ture
[ ! 23 -ge 22 ]
echo $? #结果为false
-o:或运算,存在一个为真值的表达式则结果就为真。
如:
[ 表达式A -o 表达式B】
即表达式A或B只要存在一个为真的,则结果为真。
[ 23 -gt 22 -o 1 -gt 2]
-a:与运算符,存在一个为假值的表达式则结果就为假。
如:
[ 1 -ge 2 -a 3 -le 4 ]