概述:linux shell编程中,有很多表示比较/判断的条件表达式,本文对它们做了一个简要的总结
1.字符串比较
! 取反
-n str 字符串 str 是否不为空
-z str 字符串 str 是否为空
str1 = str2 str1是否与 str2 相同
str1 != str2 str1是否与 str2 不同
-z str 字符串 str 是否为空
str1 = str2 str1是否与 str2 相同
str1 != str2 str1是否与 str2 不同
2.数值大小比较
int1 -eq int2 等于
int1 -le int2 小于等于
int1 -ge int2 大于等于
int1 -lt int2 小于
int1 -gt int2 大于
int1 -ne int2 不等于
int1 -le int2 小于等于
int1 -ge int2 大于等于
int1 -lt int2 小于
int1 -gt int2 大于
int1 -ne int2 不等于
3.文件属性判断
-b 是否块文件
-c 是否字符文件
-d 是否一个目录
-e 文件是否存在
-f 是否普通文件
-g 是否设置了文件的 SGID 位
-G 文件归本组所有
-h 是否符号连接与-L相同
-k 文件是否设置了的粘贴位
-O 是否为本用户所有
-p 文件是否为一个命名管道-r 文件是否可读
-s 文件的长度是否不为零
-S 是否为套接字文件
重要:C语言中表达式非零为真,而shell中if表达式0为true。通常情况下,我们如果要判断一个脚本是从头执行到尾部还是中途功过exit 1等这样的命令退出的话,我们通常在脚本最后加上一句“ . /bin/true”,加上这一句以后,脚本返回值将变成0.