![프로세스에서 stderr 메시지가 발생하면 스크립트 실행](https://linux55.com/image/33606/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%97%90%EC%84%9C%20stderr%20%EB%A9%94%EC%8B%9C%EC%A7%80%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%95%98%EB%A9%B4%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EC%8B%A4%ED%96%89.png)
stderr
메시지가 발생할 때 이를 캡처 하기 위해 한 프로세스를 다른 프로세스로 "감싸고" 싶습니다 .
사용 사례
나는 그것을 사용하고 있다나침반터미널을 열어서 문제가 있는지 확인해야 합니다. 내 계획은 다음과 같습니다터미널 알리미오류가 발생했음을 알 수 있도록 OSX 알림을 나 자신에게 보내는 도구입니다. 이렇게 하면 항상 화면에 터미널을 열어 둘 필요가 없습니다.
이라는 쉘 스크립트 아래에 이러한 모든 알림 메커니즘이 있고 compass-error.sh
이를 호출하면 스크립트가 알림을 보낸다고 상상해 보세요. 이제 compass watch
기본 프로세스를 실행 하고 stderr
트리거되는지 여부를 관찰하고 싶습니다 compass-error.sh
. 어떻게 해야 합니까?
답변1
output="$(./compass 2>&1 1>/dev/null)"
if [ -n "$output" ]; then
echo "$output" | mail ...
fi