2013-05-03 35 views
1

當我意識到,對於重定向標準錯誤,並輸出到文件我要做留下標準輸出到屏幕:重定向標準錯誤文件並啓動makefile文件

make > & ! output.txt 

注意我用!覆蓋該文件。但是,如何將標準錯誤重定向到文件並將標準輸出保留爲屏幕?或者更好的是在文件上輸出錯誤和輸出,而且在屏幕上輸出,所以我可以看到我的編譯是如何進行的? 我試過了:

make 2>! output.txt 

但它給了我一個錯誤。

+0

它給你什麼錯誤? – bmargulies 2013-05-03 02:18:07

+0

make:***沒有規則使目標爲'2'。停止。 – Lupocci 2013-05-03 02:55:48

回答

2

請注意,>它足以覆蓋文件。您可以使用tail -f命令來查看屏幕上的輸出,如果它被重定向到一個文件:

$(make 1>output.txt 2>error.txt &) && tail -f output.txt error.txt 
+0

謝謝 但它說模糊輸出重定向。 – Lupocci 2013-05-03 02:56:30

+0

請注意,如果我這樣做:> output.txt 它說:output.txt:文件存在。因此,我認爲覆蓋文件是不夠的。 – Lupocci 2013-05-03 02:57:31

+0

無法重現錯誤。 (你在使用bash嗎?)但是,我找到了一個更好的解決方案。嘗試一下。 – hek2mgl 2013-05-03 03:05:11

1

您正在閱讀的bash/sh的文檔和用tcsh。 tcsh沒有任何方法可以重定向stderr。您可能想切換到其中一個非csh shell。

+0

並重定向但仍然在屏幕上輸出? – Lupocci 2013-05-03 16:33:41

1

你可以簡單地用管道做到tee命令。以下內容將把stdout和stderr放入一個文件中,同時也放到終端中:

make | & tee output.txt 
相關問題