语法:
${待测变量:=默认值}
当待测的变量不存在或者为空时,将直接把待测变量设置为默认值(赋值),如果待测变量存在,则直接传变量值。
这个写法与前面说到的${待测变量:-默认值}
是有区别的,前面的只是在待测的变量不存在或者为空时临时返回默认值,并不是对变量赋值。${待测变量:=默认值}
这种写法是待测的变量不存在或者为空时,给待测变量赋值为默认值。
实例:
### 变量存在时:
[root@www.lutixia.cn ~]# name=lutixia
[root@www.lutixia.cn ~]# echo ${name:='运维朱工'}
lutixia
因为变量name存在值,所以直接放回变量值。
### 变量不存在时:
[root@www.lutixia.cn ~]# echo $username
[root@www.lutixia.cn ~]# echo ${username:='运维朱工'}
运维朱工
# 再次查看username变量值,已经被赋值了。
[root@www.lutixia.cn ~]# echo $username
运维朱工
因为username变量,没有定义过,所以返回默认值,并且username被赋值。
如果是使用${待测变量:-默认值}
,那么username变量依然为空:
# 未给username变量赋值:
[root@www.lutixia.cn ~]# echo $username
[root@www.lutixia.cn ~]# echo ${username:-"运维朱工"}
运维朱工
# 再次查看username变量,值为空
[root@www.lutixia.cn ~]# echo $username