Bash: passage optionnel d'arguments à une commande

21

J'essaie d'ajouter des arguments à un appel de commande en fonction d'une autre variable. Veuillez regarder le code de script shell:

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

Dans l'exemple, si titleest donné non nul, un argument sera ajouté à curl.

Cela ne fonctionne pas correctement s'il titlecontient des espaces. De plus, je ne pouvais pas entourer $(...)de citations, car si titleest nul, cela produira un argument vide inattendu curl.

Que dois-je faire pour que cela fonctionne comme prévu.

Shou Ya
la source

Réponses: