我在此阅读了bash手册页,但我不了解其中的区别。我测试了它们两个,它们似乎产生了完全相同的结果。
如果未通过命令行参数设置值,我想设置变量的默认值。
#!/bin/bash
var="$1"
var=${var:-word}
echo "$var"
上面的代码回显word
if $1
为null,回显$1
if不为null的值。这样:
#!/bin/bash
var="$1"
var=${var:=word}
echo "$var"
根据Bash手册页,
${parameter:-word}
使用默认值。如果参数未设置或为null,则替换单词的扩展名。否则,将替换参数的值。
${parameter:=word}
分配默认值。如果参数未设置或为空,则将单词的扩展分配给参数。然后替换参数的值。不能以此方式分配位置参数和特殊参数。
他们是一样的,${parameter:=word}
只是更多吗?
使用var
两次时,您看不到示例的差异,但是可以使用两个不同的变量来查看差异:
foo=${bar:-something}
echo $foo # something
echo $bar # no assignement to bar, bar is still empty
foo=${bar:=something}
echo $foo # something
echo $bar # something too, as there's an assignement to bar
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句