我想知道如何将 stderr 重定向到多个输出。我用这个脚本尝试过,但我无法让它正常工作。第一个文件应该有 stdout 和 stderr,第二个应该只有错误。
perl script.pl &> errorTestnormal.out &2> errorTest.out
有一个更好的方法吗?任何帮助将非常感激。谢谢你。
最佳答案
perl script.pl 2>&1 >errorTestnormal.out | tee -a errorTestnormal.out > errorTest.out
会做你想做的。
这有点乱,让我们一步一步来。
STDERR
的现在会去 STDOUT
STDOUT
的东西现在去 errorTestnormal.out。 所以现在,
STDOUT
被打印到一个文件, STDERR
被打印到 STDOUT
。我们想把 STDERR
放到 2 个不同的文件中,我们可以用 tee 来做。 tee 将它提供的文本附加到文件中,并回显到 STDOUT
。tee
附加到 errorTestnormal.out
,所以它现在包含所有 STDOUT
和 0x2518141 的 134314314314312314312 的输出 134312 14312 的所有输出。 STDERR
的 script.pl
(其中包含来自 0x251812231341 的 STDOUT
,从 0x251812231341 中写入 231431314123123143123143123143123143123143131313141在此之后,
tee
具有所有 STDERR
输出,然后是所有 script.pl
输出。 errorTest.out
仅包含 errorTestnormal.out
输出。关于bash - 将 stdout/stderr 重定向到多个文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8124220/