スクリプトの最後に次のようにメールを送信します。
echo "Script finished on `date`" | /usr/bin/Mail -s "Script complete" "[email protected]".
ただし、同じメッセージを画面にもエコーしたい。同じことをどのように行うのですか?
最も簡単な方法は、おそらくstderrとstdoutへのメッセージをtee
することです。
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "[email protected]"
tee
は、入力をstdoutを含む複数の宛先に複製します。デフォルトでは、stderrとstdoutの両方が画面に表示されます。 stdoutをMail
にリダイレクトし、stderrだけを画面に表示します。
何らかの理由でstdoutで必要な場合は、サブシェル(または他のいくつかの方法)を使用してリダイレクトすることができます。
(
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "[email protected]"
) 2>&1