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.

Respostas:


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.