SHELL 编程 -- 条件测试

常用的测试一般包括对文件的测试 对字符串的测试和对数值的测试

我们可以使用test expr这两个工具来完成需要的测试

数值的计算 使用expr

 

expr 一般用于整数, 有时也用与字符串

基本运算例子,注意expr表达式中运算符的左右必须都有空格 ,如下

$expr 10 + 10

20

$expr 30 / 3

10

$expr 10 *2

20

 

增量计数

$LOOP=0

$LOOP=`expr $ LOOP + 1`

 

如果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 “ 10” ]

$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) , !

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(677) | 评论(0) | 转发(0) |
0

上一篇:SAMBA

下一篇:oracle note 01

给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值