Linux:shell基础(十)
条件判断
1、按照文件类型进行判断:
-b :判断该文件是否存在,并且是否为块文件(是块文件则为真)
-c :判断该文件是否存在,并且是否为字符设备文件(是字符设备文件则为真)
-d :判断该文件是否存在,并且是否为目录文件(是目录文件则为真)
-e :判断该文件是否存在,(存在则为真)
-f :判断该文件是否存在,并且是否为普通文件(是普通文件则为真)
-L :判断该文件是否存在,并且是否为符号链接文件(是符号链接文件则为真)
-p :判断该文件是否存在,并且是否为管道文件(是管道文件则为真)
-s :判断该文件是否存在,并且是否为非空(非空则为真)
-S :判断该文件是否存在,并且是否为套接字文件(是套接字文件则为真)
两种判断格式:
test -e /test.sh
[ -e /test.sh ]
2、按照文件权限进行判断:
-r 文件 :判断该文件是否存在,并且是否拥有读权限。(有读权限为真)
-w 文件 :判断该文件是否存在,并且是否拥有写权限。(有写权限为真)
-x 文件 :判断该文件是否存在,并且是否拥有执行权限。(有执行权限为真)
-u 文件 :判断该文件是否存在,并且是否拥有SUID权限。(有SUID权限为真)
-g 文件 :判断该文件是否存在,并且是否拥有SGID权限。(有SGID权限为真)
-k 文件 :判断该文件是否存在,并且是否拥有SBit权限。(有SBit权限为真)
3、两个文件之间的比较
文件1 -nt 文件2:判断文件1的修改时间是否比文件2新。(如果新则为真)
文件1 -ot 文件2:判断文件1的修改时间是否比文件2旧。(如果旧则为真)
文件1 -ef 文件2:判断文件1和文件2的inode号是否一致。可以理解为判断是否为同一个文件。
可以用该方法判断是否为硬链接。
4、两个整数之间的比较
整数1 -eq 整数2 :判断整数1是否与整数2相等(相等则为真)
整数1 -ne 整数2 :判断整数1是否与整数2不相等(不相等则为真)
整数1 -gt 整数2 :判断整数1是否大于整数2(大于则为真)
整数1 -lt 整数2 :判断整数1是否小于整数2(小于则为真)
整数1 -ge 整数2 :判断整数1是否大于等于整数2(大于等于则为真)
整数1 -le 整数2 :判断整数1是否小于等于整数2(小于等于则为真)
5、字符串的判断
-z 字符串 :判断字符串是否为空(为空则为真)
-n 字符串 :判断字符串是否非空(非空则为真)
字符串1 == 字符串2 :判断字符串1和字符串2是否相等(相等则为真)
字符串1 != 字符串2 :判断字符串1和字符串2是否不相等(不相等则为真)
6、多重条件判断
判断1 -a 判断2 :逻辑与,判断1和判断2都成立,最后的结果才成立。
判断1 -o 判断2 :逻辑或,判断1和判断2有一个成立,最后的结果就成立。
!判断 :逻辑非,使原来的判断取反。