${变量:=默认值}是什么意思?

简介: 当待测的变量不存在或者为空时,将直接把待测变量设置为默认值(赋值),如果待测变量存在,则直接传变量值。

语法:

${待测变量:=默认值}

当待测的变量不存在或者为空时,将直接把待测变量设置为默认值(赋值),如果待测变量存在,则直接传变量值。

这个写法与前面说到的${待测变量:-默认值}是有区别的,前面的只是在待测的变量不存在或者为空时临时返回默认值,并不是对变量赋值。${待测变量:=默认值}这种写法是待测的变量不存在或者为空时,给待测变量赋值为默认值。

实例:

### 变量存在时:
[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

相关文章
|
4月前
对调 2个变量的值若干种方式
对调 2个变量的值若干种方式
11 0
|
6月前
|
SQL 分布式计算 DataWorks
使用`SET`语句来定义变量并为其赋值
使用`SET`语句来定义变量并为其赋值
145 4
|
6月前
|
SQL 分布式计算 DataWorks
可以使用SET语句来定义变量并为其赋值
可以使用SET语句来定义变量并为其赋值
40 2
|
8月前
|
Shell Linux
10.2.2 变量的取用与设置:echo, 变量设置规则, unset
10.2.2 变量的取用与设置:echo, 变量设置规则, unset
77 0
|
9月前
|
C++
【C++】 --- 如果同时定义了两个函数,一个带const,一个不带,会有问题吗?
【C++】 --- 如果同时定义了两个函数,一个带const,一个不带,会有问题吗?
65 0
|
10月前
|
Python
20.从入门到精通:参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数
20.从入门到精通:参数 位置参数 关键字参数 默认参数 匿名函数 return 语句 强制位置参数
|
11月前
|
索引
【Lua】类型和值(三)
【Lua】类型和值(三)
47 0
|
11月前
【Lua】类型和值(一)
【Lua】类型和值(一)
50 0
|
11月前
【Lua】类型和值(二)
【Lua】类型和值(二)
43 0
|
JavaScript 前端开发
使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果
使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果
114 0
使用 JavaScript 中的变量、数据类型和运算符,计算出两个 number 类型的变量与一个 string 类型的变量的和,根据 string 类型处于运算符的不同位置得到不同的结果