Lors de l'automatisation d'une tâche, il est judicieux de la tester d'abord manuellement. Il serait utile, cependant, si des données allant vers stderr soient immédiatement reconnaissables en tant que telles, et se distinguent des données allant vers stdout, et d'avoir toutes les sorties ensemble afin qu'il soit évident quelle est la séquence des événements.
Une dernière touche qui serait bien si, à la sortie du programme, il imprimait son code retour.
Toutes ces choses aideraient à automatiser. Oui, je peux faire écho au code retour à la fin d'un programme, et oui, je peux rediriger stdout et stderr; ce que j'aimerais vraiment un shell, un script ou un redirecteur facile à utiliser qui montre stdout en noir, montre stderr entrelacé avec lui en rouge et imprime le code de sortie à la fin.
Y a-t-il une telle bête? [Si cela importe, j'utilise Bash 3.2 sur Mac OS X].
Mise à jour : Désolé, cela fait des mois que je n'ai pas regardé ça. Je suis venu avec un script de test simple:
#!/usr/bin/env python
import sys
print "this is stdout"
print >> sys.stderr, "this is stderr"
print "this is stdout again"
Dans mes tests (et probablement en raison de la façon dont les choses sont tamponnées), rse et hilite affichent tout depuis stdout puis tout depuis stderr. La méthode fifo obtient l'ordre correct mais semble tout coloriser en suivant la ligne stderr. ind s'est plaint de mes lignes stdin et stderr, puis a mis la sortie de stderr en dernier.
La plupart de ces solutions sont réalisables, car il n'est pas atypique que seule la dernière sortie soit envoyée à stderr, mais ce serait quand même bien d'avoir quelque chose qui fonctionne un peu mieux.