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?

Antworten:


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.