分类: LINUX
2005-12-20 21:49:47
常用的测试一般包括对文件的测试 , 对字符串的测试和对数值的测试
我们可以使用test 和 expr这两个工具来完成需要的测试
数值的计算 使用expr :
expr 一般用于整数, 有时也用与字符串
基本运算例子,注意expr表达式中运算符的左右必须都有空格 ,如下
$expr 10 + 10
20
$expr 30 / 3
10
$expr 10 *2
20
增量计数
$LOOP=0
$LOOP=`expr $
如果expr 中算术运算符的一边不是数值类型,则返回错误 ,我们可以使用这个特征来判断某个变量是否是数值类型
$VALUE=12
$expr $VALUE + 1 > /dev/null > 2>&1
$echo #?
0
如果返回为0 则说明VALUE为数值类型, 否则不是
Test 使用的两种方式
test condition
[ condition ] 注意condition两边的空格不能少
Test 进行数值测试:
格式:
[ NUM1 OPERATOR NUM2 ]
OPERATOR 有:
-eq equal 相等
-ne not equal 不相等
-gt great than 大于
-lt less than 小于
-le less or equal 小于或等于
-ge great or equal 大余或等于
例子:
$NUMBER=30
$[ “$NUMBER” –eq “
$echo #?
1
Test 进行字符串测试
[ string operator string ]
Operator :
= 两个字符串相等
!= 不相等
-z 空串
-n 非空串
Test 进行文件测试
-d 目录
-f 普通文件
-L 符号连接
-r 可读
-s 文件长度大于0、非空
-w 可写
-u 被设置了SUID
-x 可执行
例子:
$[ -x score.txt ]
$echo #?
Test 中使用逻辑运算符
-a 逻辑与 ALL
-o 逻辑或 OR
! 逻辑非 ,condition 为真, 取非则返回假
例子:
$[ -w results.txt –a –w score.txt ]
$echo #?
0
说明两个文件都可写
Summary:
记忆test使用的技巧
当字符串比较的时候 用 = , != , -z , -n
当数值比较的时候, 用 –eq , -ne, -lt, -le, -gt, -ge
测试文件,用 –d , -f , -L , -r , -w , -x 等
最后就是test中使用逻辑运算 –a (ALL) , -o(OR) , !