立即知道哪个输出已发送到stderr
自动执行任务时,明智的做法是先手动对其进行测试。但是,如果可以立即识别出发往stderr的任何数据,并且将其与发往stdout的数据区分开来,并且将所有输出放在一起,则这将是有帮助的,这样就可以清楚地知道事件的顺序是什么。 最后一个不错的选择是,如果在程序退出时打印了返回代码。 所有这些事情将有助于自动化。是的,我可以在程序完成时回显返回代码,是的,我可以重定向stdout和stderr;我真正想要的东西是一些shell,脚本或易于使用的重定向程序,该程序以黑色显示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是不典型的,但是,仍然有一些更好的解决方案还是很不错的。