Shell中支持以下运算符:
算术运算符
参考博客:Shell 计算工具
运算符说明举例+加法$a + $b-减法$a - $b*乘法$a * $b/除法$a / $b%取余$a % $b=赋值a=$b 将把变量 b 的值赋给 a==相等用于比较两个数字,相同则返回 true,否则返回false!=不相等用于比较两个数字,不相同则返回 true,否则返回false
示例: 
示例:

关系运算符
注意:关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
运算符说明举例-eq检测两个数是否相等,相等返回 true[ $a -eq $b ]-ne检测两个数是否相等,不相等返回 true[ $a -ne $b ]-gt检测左边的数是否大于右边的,如果是,则返回 true[ $a -gt $b ]-lt检测左边的数是否小于右边的,如果是,则返回 true[ $a -lt $b ]-ge检测左边的数是否大等于右边的,如果是,则返回 true[ $a -ge $b ]-le检测左边的数是否小于等于右边的,如果是,则返回 true[ $a -le $b ]
示例:

布尔运算符
运算符说明举例!非运算,表达式为 true 则返回 false,否则返回 true[ ! false ]-o或运算,有一个表达式为 true 则返回 true[ $a -lt 10 -o $b -gt 10 ]-a与运算,两个表达式都为 true 才返回 true[ $a -lt 10 -a $b -gt 10 ]
示例:

字符串运算符
运算符说明举例=检测两个字符串是否相等,相等返回 true[ $a = $b ]!=检测两个字符串是否不相等,不相等返回 true[ $a != $b ]-z检测字符串长度是否为0,为0返回 true[ -z $a ]-n检测字符串长度是否不为0,不为0返回 true[ -z $a ]str检测字符串是否为空,不为空返回 true[ $a ]
示例: 
文件运算符
运算符说明举例-b file检测文件是否是块设备文件,如果是则返回 true。[ -b $file ]-c file检测文件是否是字符设备文件,如果是则返回 true。[ -c $file ]-d file检测文件是否是目录,如果是则返回 true。[ -d $file ]-f file检测文件是否是普通文件(既不是目录,也不是设备文件),如果是则返回 true。[ -f $file ]-g file检测文件是否设置了 SGID 位,如果是则返回 true。[ -g $file ]-k file检测文件是否设置了粘着位(Sticky Bit),如果是则返回 true。[ -k $file ]-p file检测文件是否是具名管道,如果是则返回 true。[ -p $file ]-u file检测文件是否设置了 SUID 位,如果是则返回 true。[ -u $file ]-r file检测文件是否可读,如果是则返回 true。[ -r $file ]-w file检测文件是否可写,如果是则返回 true。[ -w $file ]-x file检测文件是否可执行,如果是则返回 true。[ -x $file ]-s file检测文件是否为空(文件大小是否大于0),不为空返回 true。[ -s $file ]-e file检测文件(包括目录)是否存在,如果存在则返回 true。[ -e $file ]
示例:
