运算符
数学运算符 使用反引号 ` ` 表达式与运算符之间需要空格隔开
`expr $a + $b` #加法
`expr $a - $b` #减法
`expr $a \* $b` #乘法 *前必须加\
`expr $a / $a` #除法
`expr $b % $a` #取余
a=$b #把b值赋值给a
$a == $b #判断a和b值相等
$a != $b #判断a和b值不相等
关系运算符 关系符两边仅支持数字进行比较
[$a -eq $b]
-eq #是否相等 相等返回true
[$a -ne $b]
-ne #是否不相等 不相等返回true
[$a -gt $b]
-gt #左边大于右边 是返回true
[$a -ge $b]
-ge #左边大于等于右边 是返回true
[$a -lt $b]
-lt #左边小于右边 是返回true
[$a -le $b]
-le #左边小于等于右边 是返回true
布尔运算符 (与或非运算)
a=10 b=20
! #非运算
[! false] #返回 true
-o #或运算
[$a -lt 20 -o $b -gt 100] #返回true
-a #与运算
[$a -lt 20 -o $b -gt 100] #返回false
逻辑运算符
&& #逻辑与
|| #逻辑或
字符串运算符
= #判定是否相等 true false
[10 = 20] #false
!= #判定是否不相等 true false
[10 != 20] #true
-z #判定字符串长度是否为0 为0返回true
a="123456" [-z $a] #false
-n #判定字符串长度是否不为0 不为0返回true
a="123456" [-n "$a"] #true
$ #判定字符串是否为空 不为空返回true
a="123456" [$a] #true
文件测试运算符
-b file #判定文件是否是块设备文件 是返回true
-c file #判定文件是否是字符设备文件 是返回true
-d file #判定文件是否是目录 是返回true
-f file #判定文件是否是普通文件 是返回true
-r file #判定文件是否可读 是返回true
-w file #判定文件是否可写 是返回true
-x file #判定文件是否可执行 是返回true
-s file #判定文件是否为空 不为空返回0
-e file #判定文件是否存在 是返回true