shell中的测试条件

shell中的测试条件有三种:test,[ ]以及(( ))。其中test和[ ]是等价的(test -z str 等价于 [ -z str ]),因此将二者归为一类讨论


[ ]

1.[ ]的测试对象有三种:

  • 字符串 ,如[ -z str ]
  • 数字,如[ n1 -lt n2 ]
  • 文件,如[ -f filename ]
2. 中括号内的变量,最好用双引号包括; 中括号内的常量,最好用单引号或双引号包括。如
if [ -z ${var} ]  #可能出错
if [ -z "${var}" ]  #最好改成这样
3.-a(与)和-o(或):进行多重条件的复合测试,如
if [ -n "${var}" -a "${var}" -lt 100 ]  #当变量被定义且其值小于100时
4.取反测试!:对测试条件取反
if [ ! "$?" -eq "0" ]  #上一条命令返回值不等于0

(( ))
1.(( ))作测试条件用时其中可使用类C的数字测试条件,包括
  • < :小于
  • > :大于
  • <= :小于等于
  • >= :大于等于
  • == :等于
  • != :不等于

2.经测试,(( ))中不能用-a,-o以及!等复合测试

3.(( ))除用作数值测试之外,还可用于变量自增减,如(( var++ ))


测试条件的应用

在shell中,测试条件主要用于以下两个方面:

1.if,while以及until等语句

2.&&和||


command返回值和测试条件之间的关系

可以看到,command返回值和测试条件结果都是True或者False,因此二者应用场合一样,即command返回值也可以用于if,&&和||

譬如

if command 1; then
  command 2
else
  command 3
fi

command 1 && {  
  command 2
} || {  #这里注意||的位置,不能错
  command 3
}
是等价的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值