如果变量为空或未设置,我想echo
变量的值或默认值。
我试过了:
echo "${X:-{}}"
结果:
值}
如果已设置X的值或
{}
如果没有设置。
设置变量时,我的输出中会出现一个右括号,这是一种不良行为。我该如何逃离收尾支架? (我尝试用" \"逃避,但没有成功......)
答案 0 :(得分:3)
这样做:
echo "${X:-"{}"}"
答案 1 :(得分:2)
解析器认为第一个/\b(\S+@\S+\.\S+)\b/g
正在关闭}
,因此打印变量,然后打印第二个${}
。你需要逃避第一个结束括号:
}
答案 2 :(得分:1)
其他答案适用于bash
(至少是正确的版本),zsh
和ksh
,但似乎至少在sh
的某些版本中无效。
使用变量进行替换应该适用于我希望的任何地方:
def={}
echo "${X:-$def}"