设置shell变量的默认值
时间:2019-04-16 23:59:04 来源:igfitidea点击:
可以使用下面的语法设置默认的shell变量值。
例如,尝试显示一个名为grandslam的未定义变量的值:
[root@rhel6 ~]# echo $grandslam
由于变量grandslam没有定义,所以什么也没显示。
我们可以指定如果$grandslam未设置,则设置其值为 "just do it":
[root@rhel6 ~]# echo ${grandslam=just do it}
just do it
[root@rhel6 ~]# echo $grandslam
just do it
shell脚本中冒号减号:-是什么意思
我们还可以使用下面的语法在shell变量未设置时提供一个备选值:
echo ${variable:-DefaultValue}
例如:
[root@rhel6 ~]# echo ${hi:-hellowold}
hellowold
shell脚本中冒号等号:=是什么意思
当变量的值为空,我们可以设置shell变量的默认值:
echo ${variable:=DefaultValue}
例如:
[root@rhel6 ~]# echo ${cn:=nihao}
nihao
shell中冒号减号和冒号等号的区别
冒号减号:-如果变量没有设置,则使用提供的值代替
冒号等号:=如果变量是空,则使用默认值对变量进行设置
下面的函数die如果在调用时缺少$1参数,则将分配一个默认值:
但是运行时将会报错
die(){
local error=${1:=Undefined error}
echo "[root@rhel6 tmp]# ./h.sh
./h.sh: File not found
./h.sh: line 3: : cannot assign in this way
: $LINE $error"
}
die "File not found"
die
die(){
local error=${1:-Undefined error}
echo "##代码##: $LINE $error"
}
# 调用die()时有一个参数
die "File not found"
# 调用die()时没有参数
die
这是因为,$1是系统临时变量,不能进行赋值。 改成下面即可
##代码##
