21 我试图将参数添加到命令调用取决于另一个变量。请查看shell脚本代码: curl \ $([ -z "${title}" ] || echo --data-urlencode title=${title}) \ http://example.com 在示例中,如果title给定的值不为null,则会将参数添加到curl。 如果title包含空格,这将无法正常工作。同样,我也不$(...)能用引号引起来,因为如果title为null,它将产生意外的空参数curl。 我应该怎么做才能使其按预期工作。 bash shell-script bash-scripting command-line-arguments — 寿雅 source
23 我已经使用bash ${var:+...}语法(参考)解决了这个问题。 脚本现在更改为 curl \ ${title:+ --data-urlencode "title=${title}"} \ http://example.com 完美地运作。 另请参阅: Bash-具有可选参数和缺少逻辑的函数 如何编写一个带有可选输入参数的bash脚本? — 寿雅 source