프로세스에서 stderr 메시지가 발생하면 스크립트 실행

프로세스에서 stderr 메시지가 발생하면 스크립트 실행

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

관련 정보