【Linux学习笔记】32:Shell编程中的变量测试

变量测试主要在Shell中有,其它绝大多数语言是没有这个概念的,通用度不高。而且变量测试比较复杂,在实际写脚本的过程中完全可以用其它方式来取代变量测试。
变量测试格式复杂,语法简单,适合于脚本程序的优化。(其实就是把判断语句和赋值语句简化了)

变量测试表

这里写图片描述
这个表也比较复杂,解释下第一行变量测试,如果写:

x=${y-4}

那么如果y不存在,那么x=4;如果y为空值,那么x为空值;如果y有值,那么x被赋y的值。

第一行变量测试往往具有的意义是,在一些比较复杂的脚本中,假设我们不能直接检测变量y是否存在或有值(或者直接检测y会让脚本变得非常复杂),那么就可以用该行变量测试的方式,通过x的值来推断出y是否存在或有值。(可以看到变量测试表的其它行并不能保证y的三种状态对应的x的三种状态是不同的,它们都会有各自应用的场合)

测试一下第一行:

[root@bogon ~]# unset y
[root@bogon ~]# x=${y-4}
[root@bogon ~]# echo $x
4
[root@bogon ~]# y=""
[root@bogon ~]# x=${y-4}
[root@bogon ~]# echo $x

[root@bogon ~]# y=3
[root@bogon ~]# x=${y-4}
[root@bogon ~]# echo $x
3

测试一下第四行:

[root@bogon ~]# unset y
[root@bogon ~]# x=${y:+4}
[root@bogon ~]# echo $x

[root@bogon ~]# y=""
[root@bogon ~]# x=${y:+4}
[root@bogon ~]# echo $x

[root@bogon ~]# y=3
[root@bogon ~]# x=${y:+4}
[root@bogon ~]# echo $x
4

这个表不用背,能读懂就行了。在一些Linux自带的脚本中可能有不少变量测试,读到了来查表就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值