引用变量要加””
按文件类型判断
| 测试选项 | 作用 | 
|---|---|
| -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有一个成立,结果就为真 | 
| !判断 | #逻辑非,判断结果取反 | 
| 
 | 
 |