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

100 阅读1分钟

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

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:-新值}

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