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

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

语法:

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

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

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

实例:

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

相关文章
初识go变量,使用var和:=来声明变量,声明变量的三种方式
这篇文章介绍了Go语言中使用`var`和`:=`声明变量的三种不同方式,包括声明单个或多个变量、通过值确定数据类型以及在函数体内使用`:=`声明局部变量。
初识go变量,使用var和:=来声明变量,声明变量的三种方式
|
14天前
|
JavaScript 前端开发
如何使用解构赋值来处理具有默认值的函数?
使用解构赋值来处理具有默认值的函数,可以使函数的参数和返回值更加灵活和易于使用,提高代码的可读性和可维护性,同时也减少了因参数缺失或返回值不完整而导致的错误。
38 7
|
2月前
|
安全 Go C语言
Go常量的定义和使用const,const特性“隐式重复前一个表达式”,以及iota枚举常量的使用
这篇文章介绍了Go语言中使用`const`定义常量的方法,包括常量的特性“隐式重复前一个表达式”,以及如何使用`iota`实现枚举常量的功能。
decimal的定义及默认值归零0.00写法
decimal的定义及默认值归零0.00写法
TS,类型注解 number就是类型注解,TS类型注解是一种为变量添加类型约束的方式,你定义什么类型,就只能赋值什么类型,变量命名规则,变量名称不能以数字开头,交换变量写法
TS,类型注解 number就是类型注解,TS类型注解是一种为变量添加类型约束的方式,你定义什么类型,就只能赋值什么类型,变量命名规则,变量名称不能以数字开头,交换变量写法
|
5月前
|
Go
go常量显示定义、隐式定义、iota
go常量显示定义、隐式定义、iota
|
6月前
|
Go
go `...` 不定长(可选)参数
go `...` 不定长(可选)参数
|
SQL 分布式计算 DataWorks
使用`SET`语句来定义变量并为其赋值
使用`SET`语句来定义变量并为其赋值
242 4
|
SQL 分布式计算 DataWorks
可以使用SET语句来定义变量并为其赋值
可以使用SET语句来定义变量并为其赋值
67 2
【C++】 --- 如果同时定义了两个函数,一个带const,一个不带,会有问题吗?
【C++】 --- 如果同时定义了两个函数,一个带const,一个不带,会有问题吗?
141 0