Dieses Beispiel auf swaks basiert, aber es ist nicht das einzige Programm, das ich verwende, in denen dieses Problem in :) meinen Kopf tutShell einbetten Variable mit Leerzeichen innerhalb der Kette von Befehlen
Ich habe eine Variable SUBJECT="test subject"
und dann anhängen ich Befehle in einen String:
SWAKS="
-t $TO
-h-From $FROM
--header Subject:$SUBJECT
--body $BODY
--auth
[email protected]
--auth-password=d83kflb827Ms7d"
dann Ausführung ich es als ./swaks $SWAKS
aber die Unter Nachricht der Nachricht kommt als test
als alles nach dem Leerzeichen ignoriert wird.
Ich habe versucht, die Zitate in einzelne zu ändern, Hinzufügen von Bashas und nichts funktioniert. Was mache ich falsch?
Mein letzter Versuch sah aus wie diese (Ausgabe von stderr):
./swaks -t '$TO' '\' -h-From '"test' subject"'
war um jede Variable einzelnes qoutes am Anfang und Ende und doppelten Anführungszeichen.
haben Sie versucht: SUBJECT = "'test subject'" einzelnes Zitat in den Anführungszeichen? –
Wie häufig in diesem Fall zitiert wird: http://mywiki.wooledge.org/BashFAQ/050 –
Genauer gesagt, [Abschnitt 1.5 von Bash FAQ 50] (http://mywiki.wooledge.org/BashFAQ/050#I .27m_constructing_a_command_based_on_information_that_is_only_known_at_run_time). – chepner