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