text in sendmail

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

text in sendmail

Beitrag von OldGod78 » 05.01.2017 20:42:07

hallo , ist es irgendwie möglich einen text in sendmail zu nutzen ? habe alles versucht , irgendwie geht nur ein pfad zum angeben ...

Code: Alles auswählen

sendmail EXAMPLE@MAIL.com < /PFAD/DATEI.txt
z.b. das habe ich versucht :

Code: Alles auswählen

sendmail EXAMPLE@MAIL.com < "TEXT"

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: text in sendmail

Beitrag von sbruder » 05.01.2017 20:44:06

OldGod78 hat geschrieben:

Code: Alles auswählen

sendmail EXAMPLE@MAIL.com < "TEXT"

Code: Alles auswählen

sendmail EXAMPLE@MAIL.com <<< "TEXT"

OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

Re: text in sendmail

Beitrag von OldGod78 » 05.01.2017 20:45:45

ah danke :D und wenn das in einem script ist , wieso geht das hier nicht ?:

Code: Alles auswählen

sendmail EXAMPLE@MAIL.com <<< $VARIABLE

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: text in sendmail

Beitrag von sbruder » 05.01.2017 20:47:21

OldGod78 hat geschrieben: wieso geht das hier nicht ?:
Wie geht das nicht?
gibt ein

Code: Alles auswählen

cat <<< $var
das richtig aus?

OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

Re: text in sendmail

Beitrag von OldGod78 » 05.01.2017 20:58:45

Code: Alles auswählen

./A.sh: 3: ./A.sh: var: not found
./A.sh: 4: ./A.sh: Syntax error: redirection unexpected

Code: Alles auswählen

#!/bin/sh

var = "es geht"
cat <<< $var

OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

Re: text in sendmail

Beitrag von OldGod78 » 05.01.2017 22:09:37

hmmm

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: text in sendmail

Beitrag von rendegast » 05.01.2017 22:16:36

#!/bin/sh

var = "es geht"
cat <<< $var
Zwei Fehler
einmal die Leerzeichen in der Variablendefinition

Code: Alles auswählen

var="es geht"
zum andern ein bashism

Code: Alles auswählen

#!/bin/bash

...
cat <<< $var
Alternativ eine posix-Redirection

Code: Alles auswählen

#!/bin/sh

...
cat << EOF
 $var
EOF
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: text in sendmail

Beitrag von sbruder » 05.01.2017 23:49:50

Das bashism würd ich nicht als Fehler zählen, ich würde eher das #!/bin/sh als Fehler nehmen. Wenn das Skript nur mit der bash laufen soll ist ein bashism schon OK, aber wenn es portabel sein soll muss man schon die von Dir gezeigte posix-Heredoc-Variante nehmen.

Benutzeravatar
Meillo
Moderator
Beiträge: 9230
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: text in sendmail

Beitrag von Meillo » 06.01.2017 11:43:52

sbruder hat geschrieben:Das bashism würd ich nicht als Fehler zählen, ich würde eher das #!/bin/sh als Fehler nehmen. Wenn das Skript nur mit der bash laufen soll ist ein bashism schon OK, aber wenn es portabel sein soll muss man schon die von Dir gezeigte posix-Heredoc-Variante nehmen.
Als Bashism bezeichnet man, so wie ich es kenne, unportable Bash-Features in Scripten mit /bin/sh im Shebang. Wenn im Shebang /bin/bash steht, dann ist Bash-Features natuerlich in Ordnung; in dem Fall wuerde man sie aber nicht als Bashisms bezeichnen.

Der eigentliche Fehler ist die Kombination von Bash-Features und dem /bin/sh-Shebang.

(Anfaengern rate ich, immer /bin/bash in den Shebang zu schreiben.)
Use ed once in a while!

Benutzeravatar
Meillo
Moderator
Beiträge: 9230
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: text in sendmail

Beitrag von Meillo » 06.01.2017 11:48:09

OldGod78 hat geschrieben:hallo , ist es irgendwie möglich einen text in sendmail zu nutzen ? habe alles versucht , irgendwie geht nur ein pfad zum angeben ...

Code: Alles auswählen

sendmail EXAMPLE@MAIL.com < /PFAD/DATEI.txt
z.b. das habe ich versucht :

Code: Alles auswählen

sendmail EXAMPLE@MAIL.com < "TEXT"
Vergleiche diese zwei korrekten Varianten:

Code: Alles auswählen

cat /pfad/zu/datei.txt | sendmail mail@example.com
und

Code: Alles auswählen

echo "irgendein text" | sendmail mail@example.com
Die Aequivalente ohne extra Kommandos sind:

Code: Alles auswählen

sendmail mail@example.com </pfad/zu/datei.txt
und

Code: Alles auswählen

sendmail mail@example.com <<!
irgendein text
!
(Ob man ein Ausrufezeichen oder ``EOF'' verwendet oder sonstwas ist egal.)
Use ed once in a while!

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: text in sendmail

Beitrag von sbruder » 06.01.2017 14:24:53

Meillo hat geschrieben: Als Bashism bezeichnet man, so wie ich es kenne, unportable Bash-Features in Scripten mit /bin/sh im Shebang. Wenn im Shebang /bin/bash steht, dann ist Bash-Features natuerlich in Ordnung; in dem Fall wuerde man sie aber nicht als Bashisms bezeichnen.
Ah danke! Wieder was gelernt.
(Anfaengern rate ich, immer /bin/bash in den Shebang zu schreiben.)
Ja, mit der Bash geht deutlich mehr mit weniger Aufwand.

Code: Alles auswählen

sendmail mail@example.com <<!
irgendein text
!
(Ob man ein Ausrufezeichen oder ``EOF'' verwendet oder sonstwas ist egal.)
Ja, auch Kürbiskuchen geht. Wichtig ist nur, dass man am Anfang und am Ende (jeweils in einer separaten Zeile) das Gleiche stehen hat. Das Wort solle auch nicht im Text vorkommen.

Antworten