1. 变量替换并赋值
:= 变量已声明,但取值为空
= 变量未声明
username=""
echo ${username:=$LOGNAME} # usr_ins
echo $username # usr_ins
unset username
echo ${username=$LOGNAME} # usr_ins
echo $username # usr_ins
2. 变量替换(空变量)
:- 变量已声明,但取值为空
- 变量未声明
username=""
echo ${username:-$LOGNAME} # usr_ins
echo $username # NULL
unset username
echo ${username-$LOGNAME} # usr_ins
echo $username # NULL
3. 变量检测
username=""
echo ${username:?"Empty variable"} # ksh: username: Empty variable
unset username
echo ${username?"Undefined variable"} # ksh: username: Undefined variable
4. 变量替换(非空变量)
username="eli"
echo ${username:+$LOGNAME} # usr_ins
echo $username # eli
username=""
echo ${username+$LOGNAME} # usr_ins
unset username
echo ${username+$LOGNAME} # NULL