关键词: 数值测试 字符串测试 文件测试
测试命令有三种方式:
test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
注意:EXPRESSION前后有空白字符
bash的测试类型
数值测试
-gt: 是否大于 -ge:是否大于等于 -lt: 是否小于 -le: 是否小于等于 -eq: 是否等于 -ne: 是否不等于
字符串测试
==: 是否等于 >: 是否大于 <: 是否小于 != : 是否不等于 ~=: 左侧字符串是否能够被右侧的PATTERN所匹配到 Note:此种表达式一般用于[[]]中 -z "STRING" : 测试字符串是否为空,空则为真,不空为假 -n "STRING": 测试字符串是不不空,不空则为真,空则为假 Note: 字符串比较时用到的操作数都应该使用引号
文件测试
存在性测试 -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: 是否存在且非空 文件是否打开 -t fd: fd表示文件描述符是否已经打开且与某终端相关 -N FILE:文件自动上次被读取之后是否被修改过 -O FILE: 当前用户是否为文件的属主 -G FIEL: 当前用户是否为文件属组 双目测试 FILE1 -ef FILE2 : FILE1 与 FILE2 是否指向同一个设备上的inode FILE1 -nt FILE2 : FILE1 是否 新于 FILE2 FILE1 -ot FILE2 : FILE1 是否 旧于 FILE2