我在这上面阅读了bash手册页,但我不明白其中的区别.我测试了它们两个,它们似乎产生完全相同的结果.
如果未通过命令行参数设置值,我想设置变量的默认值.
#!/bin/bash
var="$1"
var=${var:-word}
echo "$var"
Run Code Online (Sandbox Code Playgroud)
上面的代码回显,word如果$1为null,$1则回显if not null的值.这样做:
#!/bin/bash
var="$1"
var=${var:=word}
echo "$var"
Run Code Online (Sandbox Code Playgroud)
根据Bash手册页,
${parameter:-word}使用默认值.如果参数未设置或为null,则替换单词的扩展.否则,参数的值将被替换.
${parameter:=word}分配默认值.如果参数未设置或为null,则将字的扩展分配给参数.然后替换参数的值.不能以这种方式分配位置参数和特殊参数.
他们是一样的,${parameter:=word}只是做得更多吗?