一、 算术运算符:
算术运算符列表 | ||
运算符 | 说明 | 举例 |
+ | 加法 | `expr $a + $b` |
- | 减法 | `expr $a - $b` |
* | 乘法 | `expr $a \* $b`。 |
/ | 除法 | `expr $b / $a` |
% | 取余 | `expr $b % $a` |
= | 赋值 | a=$b 将把变量 b 的值赋给 a。 |
二、 数值测试
@H_502_130@运算符 | @H_502_130@示例 | @H_502_130@说明 | @H_502_130@备注 |
@H_502_130@-gt | @H_502_130@[ $a –gt $b ] | @H_502_130@A是否大于b,如大于,返回0 | @H_502_130@gt=greater than |
@H_502_130@-ge | @H_502_130@[ $a –ge $b ] | @H_502_130@A是否大于等于b,如大于等于,返回0 | @H_502_130@ge=greater equal |
@H_502_130@-eq | @H_502_130@[ $a –eq $b ] | @H_502_130@A是否等于b,如等于,返回0 | @H_502_130@eq=equal |
@H_502_130@-ne | @H_502_130@[ $a –ne $b ] | @H_502_130@A是否不等于b,如不等于,返回0 | @H_502_130@ne=not equal |
@H_502_130@-lt | @H_502_130@[ $a –lt $b ] | @H_502_130@a是否小于b,如小于,返回0 | @H_502_130@lt=less than |
@H_502_130@-le | @H_502_130@[ $a –le $b ] | @H_502_130@a是否小于等于b,如小于等于b,返回0 | @H_502_130@le=less equal |
三、 字符测试
运算符 | 说明 | 举例 |
== | 检测两个字符串是否相等,相等返回0。 | [ $a == $b ] |
> | 检测左边的字符串是否大于右边的字符串 | [ $a \> $b ] |
< | 检测左边的字符串是否小于右边的字符串 | [ $a \< $b ] |
!= | 检测两个字符串是否不相等,不相等则返回0 | [ $a != $b ] |
-z | 检测字符串是否为空,为空返回0 | [ -z $a ] |
-n | 检测字符串是否不空,不空返回0。 | [ -n $a ] |
=~ | 检测左边的字符串是否能被右边的模式匹配 | [ abc =~ a* ] |
注:字符串测试的表达式一 般用在[[ ]]模式下,比较大小时需转义,否则会被识别为输出重定向。
四、 文件测试
操作符 | 说明 | 示例 |
文件存在性测试 | ||
-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 | ||
-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的旧,是为真 |
五、 组合测试条件
第一种方式:
运算类型 | 说明 |
Command1 && command2 | Command1和command2同时为真则为真 |
Command1 || command2 | Command1和command2一个为真则为真 |
!command | Command取反 |
第二种方式:
Expression1 –a expression2 expression1和expression2同时为真则为真
Expression1 –o expression2 expression1和expression2一个为真则为真
!expression !expression取反
注:此方式必须使用test命令或[]进行测试
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。