Linux if 命令判断条件总结

Linux if 命令判断条件总结
Linux if命令

关于文件属性的判断式

-a 如果文件存在

-b 如果文件存在,且该文件是区域设备文件

-c 当file存在并且是字符设备文件时返回真

-d 当pathname存在并且是一个目录时返回真

-e 当pathname指定的文件或目录存在时返回真

-f 当file存在并且是普通文件时返回真

-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真

-h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效

-k 当由pathname指定的文件或目录存在并且设置了“sticky”位时返回真

-r 当由pathname指定的文件或目录存在并且可读时返回为真

-s 当file存在文件大小大于0时返回真

-t 文件描述符 如果文件描述符是开启的,且链接了某一个终端

-u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真

-w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。

-x 如果文件存在,且该文件有可执行的属性

-O 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。

-G 如果文件存在,且该文件为有效的群组 id 所拥有

-L 如果该文件存在,且该文件是符号链接文件

-S 如果该文件存在,且该文件是Socket文件

-N 如果该文件存在,且该文件自上次读取后曾修改过

文件1 –nt 文件2 如果文件1比文件2新,或者文件1存在,文件2不存在

文件1 –ot 文件2 如果文件1比文件2旧,或者文件1不存在,文件2存在

文件1 –ef 文件2 如果文件1和文件2 引用到相同的设备和 inode 编号

关于字符串的条件判断式

-z 空串 (如果字符串长度为0)

-n 非空串 (如果字符串长度不为0)

字符串 如果字符串长度不为0

!= 如果两个字符串不相等

= 如果两个字符串相等

== 如果两个字符串相等

字符串 1 < 字符串 2 如果字符串1小于字符串2

字符串 1 > 字符串 2 如果字符串1大于字符串2


关于算式的条件判断

-eq 等于

-ne 不等于

-gt 大于

-lt 小于

-le 小于等于

-ge 大于等于

关于 Bash 选项的条件判断

-o set的选项名称 如果选项是开启的状态