shell-条件测试

2019-04-08  本文已影响0人  p_gerer

一.语法

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.字符串运算符和整数运算符不可混用,整数比较使用字符串运算符 会把整数作为字符串来比较,字符串比较使用整数运算符会报错

上一篇 下一篇

猜你喜欢

热点阅读