outsrkem 2019-07-15 18:42 原文
按照文件类型进行判断 |
判断符 |
说明 |
备注 |
-b |
判断文件是否存在,且是否为块设备文件 |
|
-c |
判断文件是否存在,且是否为字符设备块文件 |
|
-d |
判断文件是否存在,且是否为目录文件 |
|
-e |
判断文件是否存在,存在为真 |
|
-f |
判断文件是否存在,且是否为普通文件 |
|
-L |
判断文件是否存在,且是否为软连接文件 |
|
-p |
判断文件是否存在,且是否为管道文件 |
|
-s |
判断文件是否存在,且是否为非空 |
|
-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 ] |
|
推荐阅读