鉴于command
这需要 flag --flag
。仅当标志的值作为环境变量提供时,我们才希望插入此标志VALUE
。
我尝试了以下方法:
echo "command ${X+--flag ${VALUE}}"
VALUE=1
echo "command ${X+--flag ${VALUE}}"'
参考:
答案1
command ${VALUE:+--flag "$VALUE"}
如果变量已定义且非空,则这将command
与选项--flag
及其选项参数一起运行。如果变量为空或未定义,则运行时不带参数。"$VALUE"
VALUE
command
在zsh
shell 中,不会对不带引号的扩展执行分词,您必须设置SH_WORD_SPLIT
shell 选项 ( ),以兼容模式 ( )setopt SH_WORD_SPLIT
运行 shell ,或使用sh
zsh --emulate sh
command ${=VALUE:+--flag "$VALUE"}
...确保当设置为非空值时--flag
和"$VALUE"
作为两个单独的参数传递。VALUE
如果您希望在已定义但为空时添加选项,请删除:
参数替换中的。--flag
VALUE