按照文件类型进行判断
-b
判断文件是否存在,且是否为块设备文件
-c
判断文件是否存在,且是否为字符设备块文件
-d
判断文件是否存在,且是否为目录文件
-e
判断文件是否存在,且存在为真
-f
判断文件是否存在,且是否为普通文件
-p
判断文件是否存在,且是否为管道文件
-s
判断文件是否存在,且是否为非空
-L
判断文件是否存在,且是否为软连接文件
-S
判断文件是否存在,且是否为套接字文件
按照文件权限进行判断
-r
判断文件是否存在,且有 r 权限
-w
判断文件是否存在,且有 w 权限
-x
判断文件是否存在,且有 x 权限
-u
判断文件是否存在,且有 SUID 权限
-g
判断文件是否存在,且有 SGID 权限
-k
判断文件是否存在,且有 SBIT 权限
两个文件之间进行比较
a -nt b
判断 a 文件的修改是否比 b 文件新
a -ot b
判断 a 文件的修改是否比 b 文件旧
a -ef b
判断 a 文件和 b 文件的 Inode 号是否一样
字符串的判断
-z
判断字符串是否为空 (变量)
-n
判断字符串是否为非空 (变量)
a == b
判断字符串 a 和 b 是否相等
a !== b
判断字符串 a 和 b 是否不相等相等,[ "$a" == "$b" ]
a < b
符号两侧空格可有可无,[[ "$a" < "$b" ]]
a<=b
符号两侧不能有空格,[[ "$a"<="$b" ]]
a =~ b
符号两侧必须有空格,[[ "$a" =~ "$b" ]],a 包含 b
两个整数之间进行比较
[ a -eq b ]
a=b
[ a -ne b ]
a≠b
[ a -gt b ]
a>b
[ a -lt b ]
a<b
[ a -ge b ]
a≥b
[ a -le b ]
a≤b
多重条件判断
判断 1 -a 判断 2
逻辑与,判断 1 和判断 2,都成立为真
判断 1 -o 判断 2
逻辑或,判断 1 和判断 2,有一个成立为真
! 判断
逻辑非,取反原判断式, [ ! 2 -eq 3 ]
转载于:https://www.cnblogs.com/outsrkem/p/11190675.html
本文介绍如何使用Shell脚本中的各种测试操作符来判断文件的属性,包括文件类型、权限及文件间的时间比较等,并提供了字符串和数值判断的方法。
654

被折叠的 条评论
为什么被折叠?



