1.${parameter=default}和${parameter:=default}

${parameter=default},如果变量parameter没被声明,那么就使用默认值

${parameter:-=default},如果变量parameter没被声明,那么就使用默认值

 ${parameter=default}和${parameter:=default}在绝大多数的情况下,都是相同的,只有在parameter已经被声明,但是值为空的时候,这个额外的“:”才会产生不同的结果,即:其会使用默认值

2.实例

脚本样例:

#!/bin/bash

variable0=
echo "variable0 has been declared,but is set to null."
echo "variable0 = ${variable0=`whoami`}"
#不会有输出,variable0的输出结果为空


echo
echo "variable1 has not been declared."
echo "variable1 = ${variable1=`whoami`}"
#variable1的输出结果为whoami命令的执行结果


echo
variable2=
echo "variable2 has been declared,but is set to null."
echo "variable2 = ${variable2:=`whoami`}"
#variable2的输出结果为whoami命令的执行结果。因为“:=”会比“=”多一个条件测试。

exit 0

结果:

variable0 has been declared,but is set to null.
variable0 = 

variable1 has not been declared.
variable1 = root

variable2 has been declared,but is set to null.
variable2 = root