Odpowiedzi:
Najprostszym sposobem jest prawdopodobnie przesłanie tee
wiadomości do stderr i stdout:
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "myaccount@myserver.com"
tee
duplikuje dane wejściowe do wielu miejsc docelowych, w tym stdout. Domyślnie zarówno stderr, jak i stdout przechodzą do ekranu; przekierowujesz stdout na Mail
, pozostawiając po prostu stderr idący na ekran.
Jeśli z jakiegoś powodu potrzebujesz go na standardowym wyjściu, możesz przekierować go z powrotem za pomocą podpowłoki (lub kilku innych sposobów):
(
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "myaccount@myserver.com"
) 2>&1
exec &> $LOGFILE
), a następnie przywróć standardowe wyjście, ustaw plik na standardowe wyjście i wyślij go pocztą.