2009-06-12 64 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