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、变量替换还可以完成字符串切割及掐头去尾功能,详见以下博客
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。