Wenn Sie eine Aufgabe automatisieren, ist es sinnvoll, sie zuerst manuell zu testen. Es wäre jedoch hilfreich, wenn Daten, die an stderr gesendet werden, sofort als solche erkennbar und von den Daten, die an stdout gesendet werden, unterscheidbar wären, und alle Ausgaben zusammen zu haben, damit die Reihenfolge der Ereignisse offensichtlich ist.
Eine letzte Berührung, die schön wäre, wäre, wenn beim Beenden des Programms der Rückkehrcode gedruckt würde.
All diese Dinge würden bei der Automatisierung helfen. Ja, ich kann den Rückkehrcode wiederholen, wenn ein Programm beendet ist, und ja, ich kann stdout und stderr umleiten. Was ich wirklich mag, ist eine Shell, ein Skript oder ein benutzerfreundlicher Redirector, der stdout in Schwarz anzeigt, stderr in Rot verschachtelt zeigt und den Exit-Code am Ende druckt.
Gibt es so ein Biest? [Wenn es darauf ankommt, verwende ich Bash 3.2 unter Mac OS X].
Update : Es ist leider Monate her, seit ich mir das angeschaut habe. Ich habe mir ein einfaches Testskript ausgedacht:
#!/usr/bin/env python
import sys
print "this is stdout"
print >> sys.stderr, "this is stderr"
print "this is stdout again"
In meinen Tests (und wahrscheinlich aufgrund der Art und Weise, wie die Dinge gepuffert sind) zeigen rse und hilite alles von stdout und dann alles von stderr an. Die fifo-Methode stimmt die Reihenfolge, scheint aber alles zu färben, was der stderr-Linie folgt. ind beschwerte sich über meine stdin und stderr Zeilen und setzte dann die Ausgabe von stderr zuletzt.
Die meisten dieser Lösungen sind funktionsfähig, da es nicht untypisch ist, dass nur die letzte Ausgabe an stderr gesendet wird. Trotzdem wäre es schön, etwas zu haben, das etwas besser funktioniert.