一个命令中bash中反引号失败的默认值

时间:2019-02-15 23:15:08

标签: bash

我正在尝试提出一种在命令失败时为变量分配默认值的机制。我似乎无法将它们与||结合使用,也无法在第二行中插入$()

如何将其转换为一个命令?

MY_COMMAND=$(which somefile)
MY_COMMAND=${MY_COMMAND:-"/usr/local/dev/branch/somefile"}

1 个答案:

答案 0 :(得分:1)

以下内容应在Bash中起作用:

MY_VARIABLE="$(which thing || echo 'default')"

由于这是使用subshell$()语法)的,因此||或符号的每一侧都应有完整的命令。因此,第二部分应echo

相反,parameter substitution中使用${},并且变量名称不能嵌套。