작업을 자동화 할 때는 먼저 수동으로 테스트하는 것이 좋습니다. 그러나 stderr로가는 데이터가 즉시 인식 가능하고 stdout으로가는 데이터와 구별 가능하고 모든 출력을 함께 가지고 있으면 이벤트 순서가 무엇인지 알 수 있다면 도움이 될 것입니다.
프로그램 종료시 리턴 코드를 인쇄하면 좋을 것입니다.
이 모든 것들이 자동화에 도움이 될 것입니다. 예, 프로그램이 끝나면 리턴 코드를 에코 할 수 있으며, stdout 및 stderr을 리디렉션 할 수 있습니다. 내가 정말로 좋아하는 것은 stdout을 검은 색으로 표시하고 stderr을 빨간색으로 인터리브하고 종료 코드를 인쇄하는 쉘, 스크립트 또는 사용하기 쉬운 리디렉터입니다.
그런 짐승이 있습니까? [중요하다면 Mac OS X에서 Bash 3.2를 사용하고 있습니다].
업데이트 : 내가 이것을 본 지 몇 달이 지났습니다. 간단한 테스트 스크립트를 생각해 냈습니다.
#!/usr/bin/env python
import sys
print "this is stdout"
print >> sys.stderr, "this is stderr"
print "this is stdout again"
내 테스트에서 (아마도 버퍼링 방식으로 인해) rse와 hilite는 stdout의 모든 것을 표시 한 다음 stderr의 모든 것을 표시합니다. fifo 방법은 순서를 올바르게하지만 stderr 라인을 따르는 모든 것을 채색하는 것처럼 보입니다. ind는 내 stdin 및 stderr 라인에 대해 불평 한 다음 stderr의 출력을 마지막에 넣습니다.
이러한 솔루션의 대부분은 마지막 출력 만 stderr로 이동하는 것은 비정형 적이 지 않지만 여전히 약간 더 나은 것을 갖는 것이 좋습니다.