shell中的条件测试
对于测试的对象不同,条件测试分为这么三种,文件测试、字串测试、数值测试。
1.文件测试
文件测试根据文件的属性(是否目录,正规文本,符号链接),文件的权限(是否可读,可写,可执行,有suid位),文件的size( 是否为空) 来测试,大致分为这么三类.
参数 解释
-d 是否目录
-f 是否正规文本
-L 是否符号链接
-r 是否可读
-w 是否可写
-x 是否可执行
-u 是否有suid 位
-s 是否为空
2.字串测试
字串测试用来做两个字串做对比( 等或者不等), 以及检查某一个字串是否为空
= 字串相等
!= 字串不相等
-z 字串为空
-n 字串不为空
开始感觉似乎上面每组命令有两条命令有点多余, 相等判断为否了就是不等啊,但是因为条件测试不仅仅只是单一的判断字串,可能有其他多个条件组合起来判断,而条件判断又没有 “否” 的命令,因此想着这每组两条一点也不多余。
3.数值测试
数值测试用来比较两个数值的大小。 记住几个字符的含义应该能好理解一些:e/eq (equal 等于), t (than 比较 ), g ( great 大于), l ( less 小于),n ( not )
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于