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的选项名称 如果选项是开启的状态