微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

|NO.Z.00054|——————————|LinuxShell|——|Linux&Shell$变量.V11|--------------------------------------------



[LinuxNetworkEnd:Linux&Shell$变量.V11]                                                     [Applications.LinuxNetworkEnd][|Linux|shell编程|shell基础|变量测试|]








一、例子一:
### --- 例子一:
~~~     删除变量 y
[root@localhost ~]# unset y
 
~~~     进行测试
[root@localhost ~]# x=${y-new}

~~~     因为变量 y 不存在,所以 x=new
[root@localhost ~]# echo $x
new
 
~~~     但是变量 y 还是不存在的和表 11-12 对比下,这个表是不是可以看懂了。
~~~     这是变量 y 不存在的情况,那如果变量 y 的值是空呢?
[root@localhost ~]# echo $y
~~~     给变量 y 赋值为空
[root@localhost ~]# y=""
 
~~~     # 进行测试
[root@localhost ~]# x=${y-new}
~~~     变量 x 和变量 y 值都是空
~~~     那如果变量 y 有值呢?
[root@localhost ~]# echo $x
[root@localhost ~]# echo $y

~~~     给变量 y 赋值
[root@localhost ~]# y=old
~~~     # 进行测试
~~~     变量 x 和变量 y 的值都是 old

[root@localhost ~]# x=${y-new}
[root@localhost ~]# echo $x
old
[root@localhost ~]# echo $y
old

二、 例子2

### ---  例子2
~~~     那如果大括号内是“=”号,又该是什么情况呢?先测试下变量 y 没有设置的情况:
~~~     删除变量 y
[root@localhost ~]# unset y
 
~~~     # 进行测试
[root@localhost ~]# x=${y:=new}

~~~     变量 x 和变量 y 的值都是 new
~~~     一旦使用“=”号,那么变量 y 和变量 x 都会同时进行处理,
~~~     而不像例子 1 中只改变变量 x 的值。
~~~     那如果变量 y 为空又是什么情况呢?

[root@localhost ~]# echo $x
new
[root@localhost ~]# echo $y
new

~~~     设定变量 y 为空
[root@localhost ~]# y=""
 
~~~     # 进程测试
[root@localhost ~]# x=${y:=new}

### --- 变量 x 和变量 y 的值都是 new
~~~     一旦在大括号中使用“:”,那么变量 y 为空或者不设定,处理方式都是一样的了。
~~~     那如果 y 已经赋值了,又是什么情况:

[root@localhost ~]# echo $x
new
[root@localhost ~]# echo $y
new

~~~     给 y 赋值
[root@localhost ~]# y=old
 
~~~     # 进行测试
[root@localhost ~]# x=${y:=new}
~~~     原来变量 x 和变量 y 的值都是 

[root@localhost ~]# echo $x
old
[root@localhost ~]# echo $y
old

三、例子 3:

### --- 例子三:
~~~     # 再测试下大括号中是“?”的情况吧:
~~~     删除变量 y

[root@localhost ~]# unset y
~~~     会把值“new”输出到屏幕上
~~~     那如果变量 y 已经赋值了呢:

[root@localhost ~]# x=${y?new}
-bash: y: new
~~~     给变量 y 赋值
[root@localhost ~]# y=old
 
~~~     # 进行测试
[root@localhost ~]# x=${y?new}
~~~     变量 x 和变量 y 的值都是 old

[root@localhost ~]# echo $x
old
[root@localhost ~]# echo $y
old









===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                   ——W.S.Landor



来自为知笔记(Wiz)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。