shell 条件测试
1.
t e s t一般有两种格式,即:
test condition
或
[ c o n d i t i o n ]
使用方括号时,要注意在条件两边加上空格。
2.文件测试
-d 目录 -s文件长度大于0、非空 -f正规文件 -w可写 -L符号连接 -u文件有s u i d位设置 -r可读 -x可执行
3.逻辑操作符
-a 逻辑与,操作符两边均为真,结果为真,否则为假。
-o 逻辑或,操作符两边一边为真,结果为真,否则为假。
! 逻辑否,条件为假,结果为真。
4.字符串测试
(1)test “str” (2)test str_opt “str” (3)test “str1” str_opt “str2” (4)[ str_opt str ] (5)[ str1 str_opt str2 ]
str_opt 为:= (两个字符串相等) !=( 两个字符串不等) -z( 空串) -n( 非空串)
5.测试数值
"num1" num_opt "num2" 或者 [ "num1" num_opt "num2" ]
num_opt 为:
(1)-eq 数值相等 (2)-ne 数值不相等 (3)-gt 第一个数大于第二个数
(4)-lt 第一个数小于第二个数 (5)-le 第一个数小于等于第二个数 (6)-ge 第一个数大于等于第二个数
[ 123 -eq 1234 ] 或者 [ “123” -eq “1234” ]
6.expr用法
expr命令一般用于整数值,但也可用于字符串。
expr argument operator argument
expr 10 + 20 注意之间的空格!如果没有一个空格,就会被当成字符串!
使用乘号时,必须用反斜线屏蔽其特定含义。expr 10 \* 3
另外:数值测试:可以用e x p r测试一个数
模式匹配:expr也有模式匹配功能。可以使用e x p r通过指定冒号选项计算字符串中字符数。. *意即任何字符重复0次或多次。