タスクを自動化する場合、最初に手動でテストするのが賢明です。ただし、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に送られることは一般的ではないため、実行可能ですが、それでも、少しだけうまく機能するものがあるとよいでしょう。