Kommentar des OP:
Für so etwas möchte
ls
ich die Verzeichnisse im Terminal aufgelistet, aber ich möchte das "Ok" oder "Fail" zumsendmail
Teil gehen.
Ich kann das nicht in tcsh
. Das sollte funktionieren in bash
:
your_command ; { [ $? -eq 0 ] && echo -n OK || echo -n Failed ; echo " at `date`" ; } | …
Ich hoffe, jemand wird es von hier aus nehmen, die obige Zeile portieren tcsh
und eine bessere Antwort schreiben.
Das Beste, was ich mir vorstellen kann, ist ein bash
Skript, wenn Sie nur bash
auf der Maschine haben. Der Punkt ist, dass Sie ein solches Skript ausführen können tcsh
. Dies ist ein schnelles und schmutziges Skript:
#!/bin/bash "$@" { [ $? -eq 0 ] && echo -n OK || echo -n Failed ; echo " at `date`" ; } | sendmail 5556667777@vtext.com
Ändern Sie den Shebang, wenn Sie müssen. Speichern Sie diesen Code in eine Datei (zB sendstatus.sh
), machen Sie ihn ausführbar chmod
und verwenden Sie ihn wie folgt:
./sendstatus.sh your_command ./sendstatus.sh your_command --with option -s ./sendstatus.sh ls ./sendstatus.sh ls -sl
Die Korrekturen:
echo -n
bewirkt, dass der nächsteecho
in derselben Zeile fortgesetzt wird;- das letzte
echo
liest nicht aus der Pfeife, weil es keinen Sinn hatte; date
ist in `Markierungen (Befehlssubstitution);- Befehle werden nach
{}
Trennzeichen gruppiert, sodass ihre Ausgabe|
insgesamt an das letzte Element übergeben wird.