我正在尝试提出一种在命令失败时为变量分配默认值的机制。我似乎无法将它们与||
结合使用,也无法在第二行中插入$()
。
如何将其转换为一个命令?
MY_COMMAND=$(which somefile)
MY_COMMAND=${MY_COMMAND:-"/usr/local/dev/branch/somefile"}
答案 0 :(得分:1)
以下内容应在Bash中起作用:
MY_VARIABLE="$(which thing || echo 'default')"
由于这是使用subshell($()
语法)的,因此||
或符号的每一侧都应有完整的命令。因此,第二部分应echo
。
相反,parameter substitution中使用${}
,并且变量名称不能嵌套。