2009-06-12 62 views
4

我正在编写一些测试脚本,并希望捕获所有错误输出并将其写入错误日志以及所有常规输出,并将其写入单独的日志。我使用的形式bash - stdoutput和stderror的重定向不会捕获所有输出

的命令CMD> output.file 2> error.file

我写测试脚本可引起段故障的命令。当命令segfaults时,bash仍然向终端输出分段错误。

我想这不会发生或与标准错误一起重定向。

可能吗?它必须是bash的做法,因为两个输出流都被重定向。

回答

11
bash -c 'cmd >output.file 2>error.file' >bash_output.file 2>&1 
+1

注意行为是壳之间的不同。 zsh输出完全放到文件中,而常规的'sh'将分段错误错误消息放在stderr中,用于隔离的进程,而bash似乎将它放在父shell的stderr流上。要确定你知道你正在使用哪个shell,因为这个想法明显不可移植。 – 2009-06-12 19:13:29