作者:tina田小甜Shirley | 来源:互联网 | 2014-11-19 13:52
test命令test的条件不支持模糊匹配,必须用完全匹配。 格式:test condition测试范围:整数,字符串,文件,条件成立,那么命令返回退出状态码为0. 变量测试语句可以用[]进行简化:test
test命令
test的条件不支持模糊匹配,必须用完全匹配。
格式:
test condition
测试范围:整数,字符串,文件,条件成立,那么命令返回退出状态码为0.
变量测试语句可以用[]进行简化:
test condition 等价于 [ condition ] (condition前后都要空格)
最好写成 [[confition ]]
在if语句中的格式:
if test condition
if [[ condition ]] 只能进行简单运算的比较
整数测试:
int1 -eq int2 测试整数是否相等(equal)
int1 -ge int2 测试int1是否大于等于int2(greater equal)
int1 -gt int2 测试int1是否大于int2(greater than)
int1 -le int2 测试int1是否小于等于int2(less equal)
int1 -lt int2 测试int1是否小于int2(less than)
int1 -ne int2 测试整数是否不等(noequal)
字符串测试:
str1 = str2 测试字符串是否相等,等价于 str1 == str2,=前后一定要空格,否则为赋值。
str1 != str2 测试字符串是否不相等
str1 \
str1 \> str2 测试字符串str1是否大于str2
-n str1 测试字符串是否不为空(长度大于0)
-z str1 测试字符串是否为空(长度为0)
注意:大于和小于要使用转义字符,否则会当作重定向。
在test中大写字母小于小写字母。
文件测试:
-e file 指定file存在
! –e file ] 判断文件不存在。
-d file 指定file是否为目录
-f fiel 指定file是否为常规文件(二进制文件)
-r file 指定file是否可读
-w file 指定file是否可写
-x file 指定file是否可执行
-a file 指定file是否存在
-s file file是否非蕶(不为空)
-O file file是否被当前用户拥有
-G file file默认组是否是当前用户组
-h / -L file 文件是软连接
file1 –nt file2 检查file1是否比file2新
file1 -ot file2 检查file1是否比file2旧
test命令的退出状态码,当条件为真返回码为0,条件为假退出状态码为非0.
复合条件检查:
[[ condition1 ]] && [[ condition2 ]] 两个条件都满足才执行then,等效于-a
[[ condition1 ]] || [[ condition2 ]] 任意一个满足就执行then,等效于-o
未完待续......