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
会发生什么STDOUT
STDOUT
现在将转到errorTestnormal.out.所以现在,STDOUT
打印到文件,然后STDERR
打印到STDOUT
.我们想要放入STDERR
2个不同的文件,我们可以用tee做.tee将它给出的文本附加到文件中,并且还回显STDOUT
.
tee
用来追加errorTestnormal.out
,所以它现在包含了所有STDOUT
和STDERR
输出script.pl
.STDOUT
的tee
(其中包含STDERR
从script.pl
)到errorTest.out
在此之后,errorTestnormal.out
具有所有STDOUT
输出,然后是所有STDERR
输出.errotTest.out
仅包含STDERR
输出.