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.

Odpowiedzi:


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.