Bash: opcionalmente pasar argumentos a un comando


19

Estoy tratando de agregar argumentos a una llamada de comando depende de otra variable. Mire el código de script de shell:

curl \
  $([ -z "${title}" ] || echo --data-urlencode title=${title}) \
  http://example.com

En el ejemplo, si titlese proporciona no nulo, se agregará un argumento a curl.

Esto no funciona correctamente si titlecontiene espacios. Además, no pude rodearme $(...)de citas, porque si titlees nulo, generará un argumento vacío inesperado curl.

¿Qué debo hacer para que funcione como se espera?

Respuestas:


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.