2016-11-12 4 views
2

ich Anwendung von bash läuft, wie dieseRaum als Parameter zu programmieren von bash

./app_name var1 var2 $var3 

wo var3--a b, --c d ist und wo b und d keine Leerzeichen enthalten.

Jetzt möchte ich den Parameter --e f zu $var3 hinzufügen, aber f enthält Leerzeichen. Das Problem ist, dass ich versuche, Änderungen in dieser Zeile zu vermeiden.

./app_name var1 var2 $var3 

Wenn ich es so lassen, app_name versteht zwei Teile f als zwei verschiedene Argumente und damit scheitert es zu analysieren.

Kann ich var3 irgendwie ändern, damit es f nicht als zwei verschiedene Argumente teilt? Ich habe versucht, Zitate ins Innere zu stellen und dem Raum zu entkommen, aber es hat nicht geholfen.

+1

META: Versuchen Sie '' für Ihren Code und Parameter zu verwenden. Dies wird Ihre Fragen leichter lesbar machen. –

Antwort

6

können Sie erreichen, dass, indem sie var3 ein Array, zum Beispiel:

var3=(--a b --c d --e "f1 f2") 

./app_name var1 var2 "${var3[@]}" 

Auf diese Weise f1 f2 wird als ein einziges Argument behandelt werden.

Verwandte Themen