--- 数值比较
n1 -eq n2 --- 检查n1是否与n2相等
n1 -ge n2 --- 检查n1是否大于等于n2
n1 -gt n2 --- 检查n1是否大于n2
n1 -le n2 --- 检查n1是否小于等于n2
n1 -lt n2 --- 检查n1是否小于n2
n1 -ne n2 --- 检查n1是否不等于n2
--- 字符串比较
str1 == str2 --- 检查str1是否和str2相同
str1 != str2 --- 检查str1是否和str2不同
str1 < str2 --- 检查str1是否比str2小
str1 > str2 --- 检查str1是否比str2大
-n str1 --- 检查str1的长度是否为非0
-z str1 --- 检查str1的长度是否为0
PS:大于小于符号必须转义,否则shell会把他们当做重定向符号,而把字符串当做文件名;大于小于顺序和sort命令所采用的不同
--- 文件比较
-d file --- 检查file是否存在并是一个目录
-e file --- 检查file是否存在
-f file --- 检查file是否存在并是一个文件
-r file --- 检查file是否存在并可读
-s file --- 检查file是否存在并非空
-w file --- 检查file是否存在并可写
-x file --- 检查file是否存在并可执行
-O file --- 检查file是否存在并属当前用户所有
-G file --- 检查file是否存在并且默认组与当前用户相同
file1 -nt file2 --- 检查file1是否比file2新
file1 -ot file2 --- 检查file1是否比file2久
file1 -ef file2 --- 判断file1和file2的Inode号是否一致
--- 多重条件判断
判断1 -a 判断2 --- 逻辑与,判断和判断2都成立,最终的结果才为真
判断1 -o 判断2 --- 逻辑或,判断1和判断2有一个成立,最终的结果就为真
! 判断 --- 逻辑非,使原始的判断取反