Senden von E-mail in der bash-Skript literal \n, anstatt eine neue Zeile
Ich bin mit dem folgenden bash-Skript zum senden einer E-Mail
#!/bin/bash
recipients="[email protected], [email protected]"
subject="Just a Test"
from="[email protected]"
message_txt="This is just a test.\n Goodbye!"
/usr/sbin/sendmail "$recipients" << EOF
subject:$subject
from:$from
$message_txt
EOF
Aber wenn die E-Mail kommt der $message_txt Inhalt gedruckt wörtlich so :
This is just a test.\n Goodbye!
Statt interpretieren die neue Zeile wie diese :
This is just a test.
Goodbye!
Habe ich versucht mit :
echo $message_txt
echo -e $message_txt
printf $message_txt
Aber das Ergebnis ist immer das gleiche. Wo mache ich falsch?
Was mache ich falsch?
- verwenden
message_txt=$(echo -e 'this is just a test.\nGoodbye!')
- Auch sollten Sie separate Kopfzeilen der Nachricht vom Körper, mit einer leeren Zeile
- Danke, das hat funktioniert 😉
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der bash, die Sie verwenden sollten Sie folgende syntax
message_txt=$'This is just a test.\n Goodbye!'
Einfachen Anführungszeichen vorangestellt
$
ist eine neue syntax erlaubt das einfügen von escape-Sequenzen in strings.Überprüfen Sie folgende Dokumentation über das Zitat Mechanismus der
bash
für ANSI-C-wie escape-SequenzenKönnen Sie auch einbetten Zeilenumbrüche direkt in einen string ohne escape-Sequenz.