很抱歉,如果这是非常简单或已经被问到的事情,但由于问题的性质,我无法想到任何搜索条件会放在搜索引擎上。
最近我看到一些bash脚本,他们分配这样的变量值:
$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
myvalue
与分配这样的值的最常见方式有什么不同:
MY_BASH_VAR=myvalue
$ echo "$MY_BASH_VAR"
myvalue
答案 0 :(得分:2)
您可以查看http://linux.die.net/man/1/bash
${parameter:-word} Use Default Values. If parameter is unset or null, the expansion of word is substituted. Otherwise, the value of parameter is substituted.
这提供了一个默认值:如果另外定义,MY_BASH_VAR保持其值,它采用默认值" myvalue"
bruce@lorien:~$ A=42
bruce@lorien:~$ A=${A:-5}
bruce@lorien:~$ echo $A
42
答案 1 :(得分:2)
假设已设置$MY_BASH_VAR
。在这种情况下,它将保持相同的值。如果没有,它将获得myvalue
。
案例1)$MY_BASH_VAR
已设置。
$ MY_BASH_VAR="hello"
$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
hello
案例2)$MY_BASH_VAR
之前未设置。
$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
myvalue
案例3)$MY_BASH_VAR
设置为空字符串。
$ MY_BASH_VAR=""
$ MY_BASH_VAR=${MY_BASH_VAR:-myvalue}
$ echo "$MY_BASH_VAR"
myvalue