Risposte:
Il modo più semplice è probabilmente tee
il messaggio a stderr e stdout:
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "myaccount@myserver.com"
tee
duplica il suo input in più destinazioni, incluso stdout. Per impostazione predefinita, sia stderr che stdout vanno sullo schermo; stai reindirizzando stdout a Mail
, lasciando solo stderr sullo schermo.
Se ne hai bisogno in stdout per qualche motivo, puoi reindirizzarlo indietro usando una subshell (o in altri modi):
(
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "myaccount@myserver.com"
) 2>&1
exec &> $LOGFILE
) e quindi ripristinare stdout, cat il file su stdout e inviarlo via e-mail.