kev*_*948 12 unix bash stdout stderr
我想知道如何将stderr重定向到多个输出.我用这个脚本试了一下,但我无法让它工作得很好.第一个文件应该有stdout和stderr,而第二个文件应该有错误.
perl script.pl &> errorTestnormal.out &2> errorTest.out
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?任何帮助将非常感激.谢谢.
Jar*_*rek 19
perl script.pl 2>&1 >errorTestnormal.out | tee -a errorTestnormal.out > errorTest.out
会做你想做的.
这有点乱,让我们一步一步地完成它.
STDERR会发生什么STDOUTSTDOUT现在将转到errorTestnormal.out.所以现在,STDOUT打印到文件,然后STDERR打印到STDOUT.我们想要放入STDERR2个不同的文件,我们可以用tee做.tee将它给出的文本附加到文件中,并且还回显STDOUT.
tee用来追加errorTestnormal.out,所以它现在包含了所有STDOUT和STDERR输出script.pl.STDOUT的tee(其中包含STDERR从script.pl)到errorTest.out在此之后,errorTestnormal.out具有所有STDOUT输出,然后是所有STDERR输出.errotTest.out仅包含STDERR输出.