一.语法
test命令 expression
[ expression ] 方括号是一个命令需要和条件保持一个空格的距离
二.测试字符串
常见字符串运算符
a = 'abc'
test $a #字符串是否为空 结果为0
test $a = 'sas' #字符串是否相等 结果为1
test $a != 'sas' #字符串是否不相等 结果为0
test -n $a #是否是非空串
test -z $a #是否是空串
三.整数测试
用法和字符串运算符一样
常见整数运算符
-eq 相等
-ne 不等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
[ 12 -eq 13]
四.文件测试
语法
test op file
op file
常见文件操作符
-a和-e 文件是否存在
-b 文件是否存在且是块文件 (目前还不太理解什么是块文件)
-c 文件是否存在且是字符文件
-d 文件是否存在且是目录
-w 文件是否存在且可写
-r 文件是否存在且可读
-x 文件是否存在且可执行
-s 文件是否是一个非空文件
-f 文件是否存在且是常规文件
-u 文件是否设施setuid位
五.逻辑操作符
! 逻辑非
-a 逻辑与
-o 逻辑或
#判断当前用户对.bash_profile有没有读写权限
[-r .bash_profile -a -w .bash_proflie]
⚠️注意:
1.shell 条件测试为真返回为0.主要是为了shell程序的退出状态保持一致
2.测试运算符=,!=,-z,-n等左右两边需要保留一个空格否则会被认为是一个普通字符,test "aaa"="bb"真正执行的是test "aaa=bb"
3.shell 字符串计算空格区分大小写
4.字符串运算符和整数运算符不可混用,整数比较使用字符串运算符 会把整数作为字符串来比较,字符串比较使用整数运算符会报错
网友评论