本小节内容不用完全死记硬背,知道有这个知识点。遇到的时候能够理解其意思,等到需要用到的时候查询表格就好。
1、变量测试与内容替换
用来测试一个变量到底有没有设置。
变量置换方式 | 变量y不存在 | 变量y为空值 | 变量y值非空 |
---|---|---|---|
x=${y-新值} | x=新值 | x为空 | x=$y |
x=${y:-新值} | x=新值 | x=新值 | x=$y |
x=${y+新值} | x为空 | x=新值 | x=新值 |
x=${y:+新值} | x为空 | x为空 | x=新值 |
x=${y=新值} | x=新值 y=新值 | x为空 y值不变 | x=$y y值不变 |
x=${y:=新值} | x=新值 y=新值 | x=新值 y=新值 | x=$y y值不变 |
x=${y?新值} | 新值输出到标准错误输出 | x为空 | x=$y |
x=${y:?新值} | 新值输出到标准错误输出 | 新值输出到标准错误输 | x=$y |
从表格中可以看到:
${y-新值} 和 ${y:-新值}是一组;
${y+新值} 和 ${y:+新值}是一组;
${y=新值} 和 ${y:=新值}是一组;
${y?新值} 和 ${y:?新值}是一组;
一共有-+=?四个分类,每个分类中分为两个,一个是带冒号一个不带冒号。这样子就感觉比较好记了。
1.1、举例x=${y-新值}
以第一行作为例子,我们来讲一下整个表格的意思。
1.1.1、当y变量不存在的时候x=新值
删除变量y,并且定义x=${y-新值},此时变量是不存在的,所以x=新值。执行命令:
[root@VM-0-8-centos ~]# unset y
[root@VM-0-8-centos ~]# x=${y-123}
[root@VM-0-8-centos ~]# echo $x
命令执行结果,如下图所示:
1.1.2、当y变量为空值的时候x为空
定义变量y为空值,并且定义x=${y-新值},此时x为空值。执行命令:
[root@VM-0-8-centos ~]# y=""
[root@VM-0-8-centos ~]# x=${y-123}
[root@VM-0-8-centos ~]# echo $x
命令执行结果,如下图所示:
1.1.3、当y变量值非空的时候x为y的值
定义变量y为456,并且定义x=${y-新值},此时x为y值。执行命令:
[root@VM-0-8-centos ~]# y="456"
[root@VM-0-8-centos ~]# x=${y-123}
[root@VM-0-8-centos ~]# echo $x
命令执行结果,如下图所示:
1.2、举例x=${y:-新值}
剩下的变量替换方式可以自行测试验证一下。
网友评论