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

一、例子一:
### --- 例子一:
~~~     删除变量 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

 

 
 
 
 
 
 
 
 
 

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

 

 

posted on   yanqi_vip  阅读(3)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示