我正在尝试向命令调用添加依赖于另一个变量的参数。请查看 shell 脚本代码:
curl \
$([ -z "${title}" ] || echo --data-urlencode title=${title}) \
http://example.com
在示例中,如果title
给定的不为空,则会向中添加一个参数curl
。
如果包含空格,则此方法无法正常工作title
。另外,我无法$(...)
用引号括起来,因为如果title
为空,它将产生一个意外的空参数curl
。
我应该怎么做才能让它按预期工作。
答案1
我已经解决了 bash 语法的问题${var:+...}
,(参考)。
脚本现在更改为
curl \
${title:+ --data-urlencode "title=${title}"} \
http://example.com
效果非常好。
另请参阅: