Bash: Optionales Übergeben von Argumenten an einen Befehl

21

Ich versuche, einem Befehlsaufruf Argumente hinzuzufügen, die von einer anderen Variablen abhängen. Bitte schauen Sie sich den Shell-Scripting-Code an:

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

Wenn im Beispiel titlenicht null angegeben wird, wird ein Argument hinzugefügt curl.

Dies funktioniert nicht richtig, wenn titleLeerzeichen enthalten sind. Auch ich konnte nicht $(...)mit Anführungszeichen umgeben, weil, wenn titlenull ist, es ein unerwartetes leeres Argument zu ergibt curl.

Was soll ich tun, damit es wie erwartet funktioniert?

Shou Ya
quelle

Antworten: