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.

Réponses:


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.