다음 명령을 사용하여 스크립트 끝에서 이메일을 보냅니다.
echo "Script finished on `date`" | /usr/bin/Mail -s "Script complete" "[email protected]".
그러나 동일한 메시지를 화면에 표시하고 싶습니다. 동일한 명령문에서 이를 어떻게 수행할 수 있습니까?
답변1
가장 간단한 방법은 tee
stdout뿐만 아니라 stderr에도 메시지를 보내는 것입니다.
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "[email protected]"
tee
표준 출력을 포함하여 여러 대상에 입력을 복사합니다. 기본적으로 stderr과 stdout은 모두 화면으로 이동합니다. stdout을 리디렉션하면 Mail
stderr만 화면에 남습니다.
어떤 이유로 stdout에 필요한 경우 서브셸(또는 몇 가지 다른 방법)을 사용하여 다시 리디렉션할 수 있습니다.
(
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "[email protected]"
) 2>&1