Bash: opcionalmente passando argumentos para um comando

21

Estou tentando adicionar argumentos para uma chamada de comando dependem de outra variável. Por favor, veja o código de script do shell:

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

No exemplo, se titlenão for nulo, um argumento será adicionado a curl.

Isso não funciona corretamente se titlecontiver espaços. Também não consegui rodear $(...)entre aspas, porque, se titlefor nulo, produzirá um argumento vazio inesperado para curl.

O que devo fazer para que ele funcione conforme o esperado.

Shou Ya
fonte

Respostas: