test -e 1.txt test的格式是命令行的格式
在脚本中不识别test ,识别 中括号,
按照文件类型进行判断
写法 :[ -f 1.txt ] 判断条件以此类推 中括号两端有空格
-f 判断文件是否存在,并且是一个普通的文件 是普通文件为真
-e 判断文件是否存在, 存在为真
-d 判断文件是否存在,并且是否为一个目录 是目录为真
-L 判断文件是否存在,并且是否为符号连接文件 是符号连接文件为真
-s 判断文件是否存在,并且是否为空 非空为真?
按照文件权限进行判断
写法 :[ -w 1.txt ] 判断条件以此类推
-r 判断文件是否存在,有读的权限
-w 判断文件是否存在,有写的权限
-x 判断文件是否存在,有执行的权限
-u 判断文件是否存在,有SUID的权限
-g 判断文件是否存在,有SGID的权限
特殊权限 SUID和SGID
https://www.cnblogs.com/candlia/p/11920239.html
两个整数的比较
More than+数词”含“以上”或“不止”
greater than一般指数字方面的大小比较 例如六大于三就用:greater than。
数值比较
[ 22 -lt 23 ] 判断条件以此类推
-lt 小于 Less equal
-ne 不相等 no equal
-eq 相等 equal
-lt 小于 Less Than
-gt 大于 Greater Than
-ge 大于等于 Greater equal
-le 小于等于 Less equal
字符串比较
-z 字符串 ,判断字符串是否为空
-n 字符串 判断字符串是否为非空
字符串1 == 字符2 判断是否相等
字符串1 != 字符2 判断是否不相等
文件比较
[ 1.txt -nt 2.txt ]
文件1 -nt 文件2 判断文件1 的修改时间是否比文件2 的新 new than
文件1 -ot 文件2 判断文件1 的修改时间是否比文件2 的旧 old than
多重条件判断
-a 逻辑与
-n 判断是否为非空
判断1 -a 判断2 逻辑与 判断1 判断2都成立,结果为真
aa=11
[ -n “$aa” -a “$aa” -gt 23 ] && echo “yes” || echo “no”
返回no
判断1 -o 判断2 逻辑或 有一个成立,结果就为真
aa=24
[ -n “$aa” -o “$aa” -gt 23 ] && echo “yes” || echo “no”
返回yes
!判断 逻辑非 使原始的判断取反
[ ! -n “$aa” ] && echo “yes” || echo “no”