1.${parameter-default}和${parameter:-default}
${parameter-default},如果变量parameter没被声明,那么就使用默认值
${parameter:-default},如果变量parameter没被声明,那么就使用默认值
${parameter-default}和${parameter:-default}在绝大多数的情况下,都是相同的,只有在parameter已经被声明,但是值为空的时候,这个额外的“:”才会产生不同的结果,即:其会使用默认值
2.实例
脚本实例:
#!/bin/bashvariable0=
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 = rootvariable2 has been declared,but is set to null.
variable2 = root