1.${parameter+default}和${parameter:+default}
${parameter+default},如果变量parameter被声明了,那么就使用default,否则就使用null字符串
${parameter:-+default},如果变量parameter被设置了,那么就使用default,否则就使用null字符串
${parameter+default}和${parameter:+default}在绝大多数的情况下,都是相同的,只有在parameter已经被声明,但是值为空的时候,这个额外的“:”才会产生不同的结果,即:其值也会为空
2.实例
脚本样例:
#!/bin/bash
a=${variable1+`whoami`}
echo "a = $a"
#其结果为空
variable2=
a=${variable2+`whoami`}
echo "a = $a"
#其结果为whoami的执行结果值
variable3=ztj
a=${variable3+`whoami`}
echo "a = $a"
#其结果为whoami的执行结果值
a=${variable4:+`whoami`}
echo "a = $a"
#其结果为空
variable5=
a=${variable5:+`whoami`}
echo "a = $a"
#重点:其结果为空。
variable6=ztj
a=${variable6:+`whoami`}
echo "a = $a"
#其结果为whoami的执行结果值
exit 0
结果:
a =
a = root
a = root
a =
a =
a = root