首页 > 代码库 > shell中 if 判断

shell中 if 判断

整数比较:

-eq 等于,如:if [ "$a" -eq "$b" ]   

-ne 不等于,如:if [ "$a" -ne "$b" ]   

-gt 大于,如:if [ "$a" -gt "$b" ]   

-ge 大于等于,如:if [ "$a" -ge "$b" ]   

-lt 小于,如:if [ "$a" -lt "$b" ]   

-le 小于等于,如:if [ "$a" -le "$b" ]   

<   小于(需要双括号),如:(("$a" < "$b"))   

<=  小于等于(需要双括号),如:(("$a" <= "$b"))   

>   大于(需要双括号),如:(("$a" > "$b"))   

>=  大于等于(需要双括号),如:(("$a" >= "$b"))

字符串比较:

= 等于,如:if [ "$a" = "$b" ]   

== 等于,如:if [ "$a" == "$b" ]

!= 取反,如 if [ "$a" != "$b" ]

-z 字符串为"null".就是长度为0. 
-n 字符串不为"null" 

其他判断参数:

-e                          文件存在
-a                          文件存在(已被弃用)
-f                          判断文件是一个regular文件(正常文件,非目录或设备)
-s                          文件长度不为0
-d                          判断对象是目录
-b                          判断对象是块设备
-c                          判断对象是字符设备
-p                          判断对象是管道
-h                          判断文件是符号连接
-L                          判断文件是符号连接
-S(大写)                    判断文件是一个socket
-t                          关联到一个终端设备的文件描述符。用来检测脚本的stdin[-t0]或[-t1]是一个终端
-r                          文件具有读权限,针对运行脚本的用户
-w                          文件具有写权限,针对运行脚本的用户
-x                          文件具有执行权限,针对运行脚本的用户
-u                          set-user-id(suid)标志到文件,即普通用户可以使用的root权限文件,通过chmod +s file实现
-k                          设置粘贴位
-O                          运行脚本的用户是文件的所有者
-G                          文件的group-id和运行脚本的用户相同
-N                          从文件最后被阅读到现在,是否被修改

f1 -nt f2                   文件f1是否比f2新
f1 -ot f2                   文件f1是否比f2旧
f1 -ef f2                   文件f1和f2是否硬连接到同一个文件



本文出自 “Linux” 博客,请务必保留此出处http://520and519.blog.51cto.com/2254416/1557667

shell中 if 判断