1、 算术运算符:node
算术运算符列表express |
||
运算符less |
说明ide |
举例测试 |
+spa |
加法字符串 |
`expr $a + $b`it |
-io |
减法table |
`expr $a - $b` |
* |
乘法 |
`expr $a \* $b`。 |
/ |
除法 |
`expr $b / $a` |
% |
取余 |
`expr $b % $a` |
= |
赋值 |
a=$b 将把变量 b 的值赋给 a。 |
2、 数值测试
运算符 |
示例 |
说明 |
备注 |
-gt |
[ $a –gt $b ] |
A是否大于b,如大于,返回0 |
gt=greater than |
-ge |
[ $a –ge $b ] |
A是否大于等于b,如大于等于,返回0 |
ge=greater equal |
-eq |
[ $a –eq $b ] |
A是否等于b,如等于,返回0 |
eq=equal |
-ne |
[ $a –ne $b ] |
A是否不等于b,如不等于,返回0 |
ne=not equal |
-lt |
[ $a –lt $b ] |
a是否小于b,如小于,返回0 |
lt=less than |
-le |
[ $a –le $b ] |
a是否小于等于b,如小于等于b,返回0 |
le=less equal |
3、 字符测试
运算符 |
说明 |
举例 |
== |
检测两个字符串是否相等,相等返回0。 |
[ $a == $b ] |
> |
检测左边的字符串是否大于右边的字符串 |
[ $a \> $b ] |
< |
检测左边的字符串是否小于右边的字符串 |
[ $a \< $b ] |
!= |
检测两个字符串是否不相等,不相等则返回0 |
[ $a != $b ] |
-z |
检测字符串是否为空,为空返回0 |
[ -z $a ] |
-n |
检测字符串是否不空,不空返回0。 |
[ -n $a ] |
=~ |
检测左边的字符串是否能被右边的模式匹配 |
[ abc =~ a* ] |
注:字符串测试的表达式一 般用在[[ ]]模式下,比较大小时需转义,不然会被识别为输出重定向。
4、 文件测试
操做符 |
说明 |
示例 |
文件存在性测试 |
||
-a FILE |
检测文件是否存在(不经常使用) |
[ -a /etc/passwd ] |
-e FILE |
检测文件是否存在 |
[ -e /etc/passwd ] |
文件存在性及类别测试 |
||
-b FILE |
检测文件是否为块设备文件并存在 |
[ -b /dev/sda ] |
-c FILE |
检测文件是否为字符设备文件并存在 |
|
-d FILE |
检测文件是否为目录文件并存在 |
|
-f FILE |
检测文件是否为普通文件并存在 |
|
-h FILE或 -L FILE |
检测文件是否为符号连接文件并存在 |
|
-p FILE |
检测文件是否为管道文件且存在 |
|
-S FILE |
检测文件是否为套接字文件且存在 |
|
文件权限存在 |
||
-r FILE |
检测文件是否为可读且存在 |
|
-w FILE |
检测文件是否可写且存在 |
|
-x FILE |
检测文件是否可执行且存在 |
|
文件特殊权限测试 |
||
-g FILE |
测试文件是否有SGID权限且存在 |
|
-u FILE |
测试文件是否有SUDI权限且存在 |
|
-k FILE |
测试文件是否有sticky权限且存在 |
|
文件大小测试 |
||
-s FILE |
测试文件是否为空且存在 |
|
文件是否打开测试 |
||
-t fd:FILE |
测试文件描述符是否被打开且与某终端相关 |
|
-N FILE |
文件自上一次被读取后是否被修改过 |
|
-O FILE |
当前有效用户是否为文件属主 |
|
-G FILE |
当前有效用户是否为文件属组 |
|
双目测试 |
||
File1 <ef file2 |
File1与file2是否指向同一设备上相同的inode |
|
File1 –nt file2 |
File1是否比file2的mtime新,是为真 |
|
File1 –ot file2 |
File1的mtime是否比file2的旧,是为真 |
5、 组合测试条件
第一种方式:
运算类型 |
说明 |
Command1 && command2 |
Command1和command2同时为真则为真 |
Command1 || command2 |
Command1和command2一个为真则为真 |
!command |
Command取反 |
第二种方式:
Expression1 –a expression2 expression1和expression2同时为真则为真
Expression1 –o expression2 expression1和expression2一个为真则为真
!expression !expression取反
注:此方式必须使用test命令或[]进行测试