系统相关
首页 > 系统相关> > shell脚本变量替换

shell脚本变量替换

作者:互联网

1、如果变量字符前面使用感叹号,可以实现对变量的间接引用,而不是返回变量本身的值,但只能实现一层间接引用

[root@mao_aliyunserver ~]# god=mao
[root@mao_aliyunserver ~]# people=god
[root@mao_aliyunserver ~]# echo ${people}
god
[root@mao_aliyunserver ~]# echo ${!people}
mao

2、变量替换可以测试变量是否存在及是否为空,并根据不同的语法格式进行不同的操作

# ${变量名:-默认值} -> 如果变量未定义或为空,则返回默认值,否则返回变量值
[root@mao_aliyunserver ~]# echo ${a}

[root@mao_aliyunserver ~]# echo ${a:-mao}
mao
[root@mao_aliyunserver ~]# echo ${a}

# ${变量名:=默认值} -> 如果变量未定义或为空,则返回默认值,并且会把默认值赋给变量,否则返回变量值
[root@mao_aliyunserver ~]# echo ${b}

[root@mao_aliyunserver ~]# echo ${b:=mao}
mao
[root@mao_aliyunserver ~]# echo ${b}
mao
# ${变量名:?错误信息} -> 如果变量未定义或为空,则通过标准错误返回错误信息,否则返回变量值
[root@mao_aliyunserver ~]# echo ${c}

[root@mao_aliyunserver ~]# echo ${c:?变量值c为空或没有赋值}
-bash: c: 变量值c为空或没有赋值
[root@mao_aliyunserver ~]# echo ${c}

# ${变量名:+默认值} -> 如果变量未定义或为空,则返回空,否则返回默认值
[root@mao_aliyunserver ~]# echo ${d}

[root@mao_aliyunserver ~]# echo ${d:+mao}

[root@mao_aliyunserver ~]# echo ${d}

[root@mao_aliyunserver ~]# d=pipi
[root@mao_aliyunserver ~]# echo ${d:+mao}
mao

3、变量替换还可以完成字符串切割及掐头去尾功能,详见以下博客

      shell脚本变量替换

4、变量替换还可以帮助我们查找变量、统计变量内容和对变量内容进行替换操作

# ${变量名^^匹配字符}: 将变量值中的匹配字符替换为大写,不写匹配字符就替换所有字符,只写一个^只替换第一个
[root@mao_aliyunserver ~]# word=myPDD
[root@mao_aliyunserver ~]# echo ${word^^}
MYPDD
[root@mao_aliyunserver ~]# echo ${word^}
MyPDD
[root@mao_aliyunserver ~]# echo ${word^y}
myPDD
# ${变量名,,匹配字符}: 将变量值中的匹配字符替换为小写,不写匹配字符就替换所有字符,只写一个,只替换第一个
[root@mao_aliyunserver ~]# echo ${word,,}
mypdd
[root@mao_aliyunserver ~]# echo ${word}
myPDD

标签:shell,变量,echo,aliyunserver,root,替换,mao
来源: https://www.cnblogs.com/sx66/p/16113867.html