我阅读了关于此的 bash 手册页,但我不明白其中的区别。我对它们都进行了测试,它们似乎产生了完全相同的结果。
如果值不是通过命令行参数设置的,我想设置变量的默认值。
#!/bin/bash
var="$1"
var=${var:-word}
echo "$var"
上面的代码回显word
if $1
is null 并回显$1
if not null 的值。这样做也是如此:
#!/bin/bash
var="$1"
var=${var:=word}
echo "$var"
根据 Bash 手册页,
${parameter:-word}
使用默认值。如果参数未设置或为空,则替换单词的扩展。否则,参数的值被替换。
${parameter:=word}
分配默认值。如果参数未设置或为空,则将单词的扩展分配给参数。然后替换参数的值。不能以这种方式分配位置参数和特殊参数。
是不是他们是一样的,而${parameter:=word}
正义的人做得更多?