shell条件判断
按照文件类型进行判断 | ||
---|---|---|
判断符 | 说明 | 备注 |
-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 ] |
作者:Outsrkem
原文链接:https://www.cnblogs.com/outsrkem/p/11190675.html
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。