Bash: opcjonalnie przekazanie argumentów do polecenia

21

Próbuję dodać argumenty do wywołania polecenia zależne od innej zmiennej. Proszę spojrzeć na kod skryptu powłoki:

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

W tym przykładzie, jeśli nie titlezostanie podany null, zostanie dodany argument curl.

To nie działa poprawnie, jeśli titlezawiera spacje. Również nie mogłem otoczyć $(...)cytatami, ponieważ jeśli titlema wartość null, otrzyma nieoczekiwany pusty argument curl.

Co powinienem zrobić, aby działał zgodnie z oczekiwaniami.

Shou Ya
źródło

Odpowiedzi: