引用变量要加””
按文件类型判断
测试选项 | 作用 |
---|---|
-b | 判断该文件是否存在,并且是否为块设备文件(是为真) |
-c | 判断该文件是否存在,并且是否为字符设备文件(是为真) |
-d | 判断该文件是否存在,并且是否为目录文件(是为真) |
-e | 判断该文件是否存在(存在为真) |
-f | 判断该文件是否存在,并且是否为普通文件(是为真) |
-L | 判断该文件是否存在,并且是否为符号链接文件(是为真) |
-p | 判断该文件是否存在,并且是否为管道文件(是为真) |
-s | 判断该文件是否存在,并且是否为非空(非空为真) |
-S | 判断该文件是否存在,并且是否为套接字文件(是为真) |
两种判断格式
|
|
[-e /root/install.log] && echo yes || echo no
第一个判断命令如果正确执行,则打印yes,否则打印no
&& 和 || 不可以调换位置
按文件权限判断
测试选项 | 作用 |
---|---|
-r | 判断该文件是否存在,并且是否该文件拥有读权限(有为真) |
-w | 判断该文件是否存在,并且是否该文件拥有写权限(有为真) |
-x | 判断该文件是否存在,并且是否该文件拥有执行权限(有为真) |
-u | 判断该文件是否存在,并且是否该文件拥有SUID权限(有为真) |
-g | 判断该文件是否存在,并且是否该文件拥有SGID权限(有为真) |
-k | 判断该文件是否存在,并且是否该文件拥有SBit权限(有为真) |
两个文件之间的比较
测试选项 | 作用 |
---|---|
file1 -nt file2 | 判断文件1的修改时间是否比文件2的新(如果新则为真) |
file1 -ot file2 | 判断文件1的修改时间是否比文件2的旧(如果旧则为真) |
file1 -ef file2 | 判断文件1是否比文件2的Inode号一致,可以理解为两个文件是否为同一个文件。这个判断用于判断硬链接是很好的办法 |
两个整数之间的比较
测试选项 | 作用 |
---|---|
num1 -eq num2 | 判断整数1是否和整数2相等(相等为真) |
num1 -ne num2 | 判断整数1是否和整数2不相等(不相等为真) |
num1 -gt num2 | 判断整数1是否大于整数2(大于为真) |
num1 -lt num2 | 判断整数1是否小于整数2(小于为真) |
num1 -ge num2 | 判断整数1是否大于或等于整数2(大于等于为真) |
num1 -le num2 | 判断整数1是否小于或等于整数2(小于等于为真) |
字符串的判断
测试选项 | 作用 |
---|---|
-z 字符串 | 判断字符串是否为空,为空返回真 |
-n 字符串 | 判断字符串是否为非空,非空返回真 |
字符串1 == 字符串2 | 判断两字符串是否相等,相等返回真,==左右加空格 |
字符串1 != 字符串2 | 判断两字符串是否不相等,不相等返回真,!=左右加空格 |
多重条件判断
测试选项 | 作用 |
---|---|
判断1 -a 判断2 | #逻辑与,判断1和判断2都成立,结果为真 |
判断1 -o 判断2 | #逻辑或,判断1和判断2有一个成立,结果就为真 |
!判断 | #逻辑非,判断结果取反 |
|
|