1. test命令
- 测试表达式是否成立,若成立返回0(布尔值),否则返回其他数值
- 布尔值是真( True) 或假(False )中的一个,shell编程里的布尔值成立表示为0,不成立表示为非0
- 格式1 test 条件表达式
- 格式2 [ 条件表达式 ](表达式两边要有空格)
2. 文件测试
格式
[ 操作符 文件或目录 ]
常用的测试操作符:
-d #测试是否为目录(Directory)
-e #测试目录或文件是否存在(Exist)
-f #测试是否为文件/文件是否存在(File)
-r #测试当前用户是否有权限读取(Read)
-w #测试当前用户是否有权限写入(Write)
-x #测试当前用户是否有权限执行(eXcute)
示例:
3. 整数值比较
格式
[ 整数1 操作符 整数2 ]
常用的测试操作符:
-eq #等于(Equal)
-ne #不等于(Not Equal)
-gt #大于(Greater Than)
-lt #小于(Lesser Than)
-le #小于或等于(Lesser or Equal)
-ge #大于或等于(Greater or Equal)
扩展:
4. 字符串比较
格式1
[ 字符串1 = 字符串2 ]或者[ 字符串1 == 字符串2 ]
[ 字符串1 != 字符串2 ]
格式2
[ -z 字符串 ]检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串
[ -n 字符串 ]检查是否有字符串存在
常用的测试操作符:
= #字符串内容相同
!= #字符串的内容不同,!号表示相反的意思
-z #检查字符串内容是否为空
-n #检查字符串是否存在
5. 逻辑测试
格式1
[ 表达式1 ] 操作符 [ 表达式2 ]
格式2
[ 命令1 操作符 命令2 ]
-a或&& #逻辑与(而且的意思)
-o或|| #逻辑或(或者的意思)
! #逻辑否
同一个中括号里使用-a或者-o,不同中括号之间使用&&或者||
注意:&&、||操作符若出现在[ ]会报错,但是&&、||能够正常存在与[ [ ] ]条件判断结构中
示例: