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

被折叠的 条评论
为什么被折叠?



