如果取消设置则指定其他var

时间:2014-09-25 18:08:32

标签: bash

在某些语言中,如果未设置,您可以将内容分配给另一个var。像这样:

// a should be === c
var a = b | c // b is empty and c=1

在bash中你可以像这样选择默认值:

a=${b:-c}

但是这会给你c而不是c

的值

我试过

a=${b:-$c}

但这不起作用我该怎么做?

2 个答案:

答案 0 :(得分:2)

只要将a=${b:-$c}设置为某个值,

c就可以正常工作。否则a将设置为null

c=4
unset b
a=${b:-$c}
echo $a

将输出设为4

c
unset b
unset c
a=${b:-$c}
echo $a

将输出(null)

答案 1 :(得分:1)

${parameter:=word}

来自man bash:

Assign Default Values. If parameter is unset or null, the expansion
of word is assigned to parameter. The value of parameter is then
substituted.

${parameter:-word}
Use Default Values. If parameter is unset or null, the expansion
of word is substituted.  Otherwise, the value of parameter is
substituted.