|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
分类:
cdv008-shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」