从零开始学习Linux(三十八):Shell基础之变量测试与内容替换

本小节内容不用完全死记硬背,知道有这个知识点。遇到的时候能够理解其意思,等到需要用到的时候查询表格就好。

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:-新值}
从零开始学习Linux(三十八):Shell基础之变量测试与内容替换_第1张图片

剩下的变量替换方式可以自行测试验证一下。

你可能感兴趣的:(从零开始学习Linux(三十八):Shell基础之变量测试与内容替换)