Appearance
算术运算符
- 利用 let 对数值进行运算,
let C=$A+$B
,let
运算后需要将其赋值给一个变量。 - 利用
expr
对数组进行运算,C=$(expr $A+$B)
- 利用
[]
来对数值进行运算,C=[A+B]
- 利用
(())
来对数值进行运算,C=$(($A+$B))
逻辑运算符
比较符 | 描述 | 示例 |
---|---|---|
-eq,equal | 等于 | [1 -eq 1] 为 true |
-ne,not equal | 不等于 | [1 -ne 1] 为 false |
-gt,greater than | 大于 | [2 -gt 1] 为 true |
-lt,lesser than | 小于 | [2 -lt 1] 为 false |
-ge,greater or equal | 大于或等于 | [2 -ge 1] 为 true |
-le,lesser or equal | 小于或等于 | [2 -le 1] 为 false |
布尔运算符
运算符 | 说明 | 举例 |
---|---|---|
-a | 与运算,两个表达式都为 true 才返回 true。 | [1 -lt 2 -a 10 -gt 2] 返回 true。 |
-o | 或运算,有一个表达式为 true 则返回 true。 | [1 -lt 2 -o 2 -gt 10] 返回 true。 |
! | 非运算,表达式为 true 则返回 false,否则返回 true。 | [! false] 返回 true。 |
逻辑运算符
运算符 | 说明 | 举例 |
---|---|---|
&& | 逻辑的 AND | [[ $A -lt 10 && $B -gt 100 ]] 返回 false |
\ | \ | |
! | 非运算,表达式为 true 则返回 false,否则返回 true。 | [! false] 返回 true。 |
字符串运算符
运算符 | 说明 | 举例 |
---|---|---|
= | 检测两个字符串是否相等,相等返回 true。 | [$a = $b] 返回 false。 |
!= | 检测两个字符串是否相等,不相等返回 true。 | [$a != $b] 返回 true。 |
-z | 检测字符串长度是否为 0,为 0 返回 true。 | [-z $a] 返回 false。 |
-n | 检测字符串长度是否为 0,不为 0 返回 true。 | [-n “$a” ] 返回 true。 |
$ | 检测字符串是否为空,不为空返回 true。 | [$a] 返回 true。 |
文件测试运算符
操作符 | 说明 | 举例 |
---|---|---|
-d | file 检测文件是否是目录,如果是,则返回 true。 | [-d $file] 返回 false。 |
-f | file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 | [-f $file] 返回 true。 |
-c | file 检测文件是否是字符设备文件,如果是,则返回 true。 | [-c $file] 返回 false。 |
-b | file 检测文件是否是块设备文件,如果是,则返回 true。 | [-b $file] 返回 false。 |
-g | file 检测文件是否设置了 SGID 位,如果是,则返回 true。 | [-g $file] 返回 false。 |
-u | file 检测文件是否设置了 SUID 位,如果是,则返回 true。 | [-u $file] 返回 false。 |
-k | file 检测文件是否设置了粘着位 (Sticky Bit),如果是,则返回 true。 | [-k $file] 返回 false。 |
-p | file 检测文件是否是有名管道,如果是,则返回 true。 | [-p $file] 返回 false。 |
-r | file 检测文件是否可读,如果是,则返回 true。 | [-r $file] 返回 true。 |
-w | file 检测文件是否可写,如果是,则返回 true。 | [-w $file] 返回 true。 |
-x | file 检测文件是否可执行,如果是,则返回 true。 | [-x $file] 返回 true。 |
-s | file 检测文件是否为空(文件大小是否大于 0),不为空返回 true。 | [-s $file] 返回 true。 |
-e | file 检测文件(包括目录)是否存在,如果是,则返回 true。 | [-e $file] 返回 true。 |