判断格式的两种写法:
第一种:
使用test加条件参数来判断文件
test [条件选项] [文件]
第二种:
使用中括号加条件参数来判断文件
[ [条件选项] [文件] ]
文件类型判断:
示例:
- 判断文件是否存在
[ -e test.txt ] && echo yes || echo no
-b 文件 判断文件存在并且是块设备文件为真
-c 文件 判断文件存在并且是字符设备为真
-d 文件 判断文件存在并且为目录为真
-e 文件 判断文件存在为真
-f 文件 判断文件存在并且是普通文件为真
-L 文件 判断文件存在并且是符号链接文件为真
-p 文件 判断文件存在并且是管道文件为真
-s 文件 判断文件是否存在并且内容是非空为真
-S 文件 判断文件是否存在并且是套接字文件为真
文件权限判断:
-r 文件 判断文件权限存并且是否有读权限为真
-w 文件 判断文件存在并且是否有写权限为真
-x 文件 判断文件存在并有执行权限为真
-u 文件 判断文件权限并且有SUID权限为真
-g 文件 判断文件存在并且拥有SGID权限为真
-k 文件 判断文件存在并且权限为真Sbit权限为真
新旧inode比较:
文件1 -nt 文件2 判断文件1的修改时间是否比文件2的新为真
文件1 -ot 文件2 判断文件1的修改时间是否比文件2的旧为真
文件1 -ef 文件2 判断文件1与文件2的inode号一致为真
数值判断:
数字1 -eq 数字2 两个值相等为真
数字1 -ne 数字2 两个不值相等为真
数字1 -gt 数字2 值1大于值2为真
数字1 -lt 数字2 值1小于值2为真
数字1 -ge 数字2 值1大于等于值2为真
数字1 -eq 数字2 值1小于等于值2为真
字符判断:
-z 字符串 空字符串为真
-n 字符串 非空字符串为真
字符1 == 字符2 两个字符串相等为真
字符1 != 字符2 两个字符串不相等为真
多重判断:
示例:
- 判断1是等于1及1是否等于2
[ 1 -eq 1 -a 1 -eq 2 ]&&echo yes || echo no
判断1 -a 判断2 两个判断都成立为真
判断1 -o 判断2 两个判断有一个成立为真
! 判断 逻辑非,使原始判断式取反