如何编写测试表达式来实现所需的测试
(1)执行命令,并利用命令状态返回值来判断
0:成功
1-255:失败
(2)测试表达式
test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
EXPRESSION两端必须有空格
bash的测试类型
数值测试:
-eq: 是否等于;
-ne: 是否不等于
-gt: 是否大于
-ge: 是否大于等于
-lt: 是否小于
-le: 是否小于等于
字符串测试:
==:是否等于
>: 是否大于
<: 是否小于
!=: 是否不等于
=~:模式匹配
-z "STRING": 判断字串是否为空;空为真
-n "STRING": 判断字串是否不空:不空为真
注意:
字符串要加引号
要使用[[ EXPRESSION ]]
文件测试:
存在性测试
-a FILE: 存在为真
-e FILE: 存在为真
存在性及类型测试
-b FILE: 是否存在并且为块设备
-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: 是否存在并且有SUID
-k FILE: 是否存在并且有STICKY
文件大小测试:
-s FILE: 文件是否有内容
文件时间戳测试:
-N FILE: 文件自从上一次读操作后是否修改过
从属关系测试:
-O FILE: 当前用户为文件属主
-G FILE: 当前用户是否属于文件属组
双目测试:
FILE1 -ef FILE2: FILE1与FILE2是否硬链接
FILE1 -nt FILE2: FILE1是否新于FILE2
FILE1 -ot FILE2: FILE1是否旧于FILE2
组合测试条件:
第一种方式:
[ -O FILE ] &&,||,! [ -r FILE ]
第二种方式:
[ -O FILE -a,-o,! -r FILE ]
bash脚本编程的条件测试
最新推荐文章于 2022-08-04 22:57:20 发布