yourcommand 2>&1 | mail -s "yourcommand is done" yourname@example.com
Бит 2>&1
говорит: «Делайте мои ошибки как обычный вывод», а остальные - «Возьмите обычный вывод и отправьте его мне с хорошей строкой темы»
Обратите внимание, что он не работает в csh
семействе оболочек, только в Bourne (sh
, bash
, ksh
...), AFAIK. Таким образом, запустить под #!/bin/sh
или #!/bin/bash
. (N.B. Вы можете передать оба дескриптора в csh
, используя yourcommand |& mail ...
, но только сумасшедший пишет сценарии, используя csh
.)
UPDATE:
Как бы я записал ошибки в файл журнала, а затем просто отправил бы свое электронное письмо по завершении?
если вы имеете в виду просто по электронной почте тот факт, что это сделано,
yourcommand 1>/dev/null 2>mylogfile ; (echo "done!" | mail -s "yourcommand is done")
если вы имеете в виду просто отправлять сообщения об ошибках по электронной почте (в этом случае вам не нужен файл журнала) ( исправлено как @ Trey сказал),
yourcommand 2&>1 1>/dev/null | mail -s "yourcommand is done" yourname@example.com