大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…
通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
条件类型可以归为三类:字符串比较、算术比较和与文件有关的条件测试,分别总结如下:
表 1
————————————————————————————————————————————————
字符串比较 结果
-----------------------------------------------------------------------------------
string1 = string2 如果两个字符串相同则结果为真
string1 != string2 如果两个字符串不同则结果为真
-n string 如果字符串不为空则结果为真
-z string 如果字符串为空(一个空串)则结果为真
————————————————————————————————————————————————
表 2
————————————————————————————————————————————————
算术比较 结果
-----------------------------------------------------------------------------------
expression1 -eq expression2 如果两个表达式相等则结果为真
expression1 -ne expression2 如果两个表达式不等则结果为真
expression1 -gt expression2 如果expression1大于expression2则结果为真
expression1 -ge expression2 如果expression1大于或等于expression2则结果为真
expression1 -lt expression2 如果expression1小于expression2则结果为真
expression1 -le expression2 如果expression1小于或等于expression2则结果为真
!expression 如果表达式为假,则结果为真,反之亦然
————————————————————————————————————————————————
表 3
————————————————————————————————————————————————
文件条件比较 结果
-----------------------------------------------------------------------------------
-d file 如果文件是一个目录则结果为真
-e file 如果文件存在则结果为真。通常使用-f选项
-f file 如果文件是一个普通文件则结果为真。
-g file 如果文件的SGID位被设置则结果为真。
-r file 如果文件可读则结果为真。
-w file 如果文件可写则结果为真。
-x file 如果文件可执行则结果为真。
-s file 如果文件的长度不为0则结果为真。
-u file 如果文件的SUID位被设置则结果为真。