Details per Mailversand

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Details per Mailversand

Beitrag von kleinerspast » 09.12.2016 11:29:20

Liebe Linuxler,

ich bin bestimmt kein Skripter, aber 1x jährlich bastel ich etwas ;-)
ich habe ein kleines Skript welches mir ne Datei generiert. Das funktioniert auch super toll! Am Ende des Skriptes lasse ich mir ne Mail über die erstellte Datei (also Infos zur Datei senden). Das will noch nicht ganz.

hier die letzte Zeile für den Mailversand

Code: Alles auswählen

md5sum File.csv | ls -lh File.csv | mail meineEmailAdresse@provider.com
Jetzt erhalte ich eine Mail die mir nicht die Hashsumme sondern nur die Ausgabe von ls -lh sendet. Wie kriege ich denn beides gebacken?

Benutzeravatar
heisenberg
Beiträge: 3540
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Details per Mailversand

Beitrag von heisenberg » 09.12.2016 11:34:13

Das was Du willst ist: Führe 2 Befehle aus und leite die Ausgabe an den Mail Befehl weiter.

Das was Du schreist ist: Führe Befehl 1) aus. Verwende die Ausgabe von Befehl 1 as Eingabe für Befehl 2) und verwende die Ausgabe von Befehl 2 als Eingabe für Befehl 3) (mail).

Code: Alles auswählen

{ md5sum File.csv ; ls -lh File.csv ; } | mail meineEmailAdresse@provider.com
Jede Rohheit hat ihren Ursprung in einer Schwäche.

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: Details per Mailversand

Beitrag von kleinerspast » 09.12.2016 12:51:59

Perfekt danke. Jetzt muss ich da nur noch ein Newline unterbringen damit es "schöner" aussieht! Super!

DeletedUserReAsG

Re: Details per Mailversand

Beitrag von DeletedUserReAsG » 09.12.2016 13:03:33

echo -e "blub\nbla"

kleinerspast
Beiträge: 276
Registriert: 29.08.2007 22:53:28

Re: Details per Mailversand

Beitrag von kleinerspast » 09.12.2016 13:16:22

alles rodger, schönes WE an alle!

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

Re: Details per Mailversand

Beitrag von Meillo » 09.12.2016 13:36:06

niemand hat geschrieben:echo -e "blub\nbla"
Das ist unportabel (echo(1) ist immer unportabel wenn das erst Argument mit einem Minus beginnt), verwende stattdessen:

Code: Alles auswählen

printf "blub\nbla\n"
Use ed once in a while!

DeletedUserReAsG

Re: Details per Mailversand

Beitrag von DeletedUserReAsG » 09.12.2016 14:05:19

Was genau meinst du? echo -e "-blub\n-bla" tut den Job jedenfalls.

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

Re: Details per Mailversand

Beitrag von Meillo » 09.12.2016 14:10:03

niemand hat geschrieben:Was genau meinst du? echo -e "-blub\n-bla" tut den Job jedenfalls.
Ich meine, dass man bei echo(1) keine Optionen (`-e' oder `-n') verwenden darf wenn es auf allen Systeme laufen soll. (Das erste Argument von deinem echo-Aufruf war `-e'.)

Hier findest du die Details: http://pubs.opengroup.org/onlinepubs/96 ... /echo.html
Use ed once in a while!

DeletedUserReAsG

Re: Details per Mailversand

Beitrag von DeletedUserReAsG » 09.12.2016 14:17:30

Ach so. Aber da der TS uns mit „Linuxler“ angesprochen hat, und dies außerdem das Debianforum ist, denke ich schon, dass echo durchaus okay ist ;)

Liffi
Beiträge: 2306
Registriert: 02.10.2004 01:33:05

Re: Details per Mailversand

Beitrag von Liffi » 09.12.2016 14:22:03

niemand hat geschrieben:Ach so. Aber da der TS uns mit „Linuxler“ angesprochen hat, und dies außerdem das Debianforum ist, denke ich schon, dass echo durchaus okay ist ;)
Irgendwann landen solche Skripte auch auf anderen Plattformen. Muss im Moment notgedrungen viele Skripte anpassen, die von meinem Linux System zu meinem Mac gewandert sind.

DeletedUserReAsG

Re: Details per Mailversand

Beitrag von DeletedUserReAsG » 09.12.2016 14:28:19

Gut, in diesem Fall ist’s einfach ersetzbar. Aber wenn man bei Scripten immer streng auf Portabilität zu anderen Systemen achtet, macht man sich u.U. das Leben unnötig schwer, weil man Möglichkeiten nicht nutzt.

Dann muss man abwägen, was mehr Aufwand ist: ein umfangreicheres Script so zu bauen, dass es unter den BSDs und allen anderen auch laufen würde, oder es schnell mit den unter dem gegenwärtigen System verfügbaren Möglichkeiten zu bauen, und wenn man tatsächlich mal auf ein anderes System umsteigt, den Kram einfach mit den dort dann verfügbaren Möglichkeiten neu zu bauen. Ich denke, eine allgemeingültige, für jeden gleichermaßen optimale Vorgehensweise wird es nicht geben, das muss dann jeder für sich entscheiden.

Mir fällt auch gerade noch eine weitere Möglichkeit ein: den Kram einfach in einer Scriptsprache bauen, die auf den meisten Systemen verfügbar ist. Für mich wäre Python da der Kandidat, für andere Lua oder gar Perl – sollte dann alles weitgehend portabel sein.

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

Re: Details per Mailversand

Beitrag von Meillo » 09.12.2016 14:38:01

niemand hat geschrieben:Gut, in diesem Fall ist’s einfach ersetzbar.
Also war mein Einwand doch angemessen, oder? ;-)
POSIX hat geschrieben: New applications are encouraged to use printf instead of echo.
(... fuer alle nicht-trivialen Ausgaben, wuerde ich ergaenzen wollen.)

Ich habe einfach den Eindruck, dass die allermeisten gar nicht um die Probleme von echo(1) wissen, weil sie ausschliesslich in der GNU-Welt leben. Ich finde es wichtig, dass auch diese, die sich der Defizite ihres Codes nicht bewusst sind, darueber aufgeklaert werden und, wenn der Aufwand vertretbar ist, ihr Verhalten so anpassen, dass sie ihren Mitmenschen das Leben leichter machen.
Use ed once in a while!

DeletedUserReAsG

Re: Details per Mailversand

Beitrag von DeletedUserReAsG » 09.12.2016 14:49:18

Ist ja okay – nur ich werde bei echo bleiben, weil das so im Muskelgedächtnis der Finger verankert ist, und ich auf meine alten Jahre nicht mehr umlernen werde :p

Antworten