我試圖將java編譯器輸出重定向到一個文件。 我認爲它應該是:試圖在bash shell中捕獲javac輸出
javac file.java > log.txt
什麼的。相反,我看到終端上的所有輸出,而log.txt中什麼都沒有!
另外,如果我想記錄錯誤太多,我該怎麼辦
javac file.java 2>&1 > log.txt
?
我試圖將java編譯器輸出重定向到一個文件。 我認爲它應該是:試圖在bash shell中捕獲javac輸出
javac file.java > log.txt
什麼的。相反,我看到終端上的所有輸出,而log.txt中什麼都沒有!
另外,如果我想記錄錯誤太多,我該怎麼辦
javac file.java 2>&1 > log.txt
?
javac file.java 2> log.txt
的原因是,你有輸出文件描述符,而不是一個。通常是stdout,您可以使用>重定向,它應該用於結果輸出。第二個stderr是用於人類可讀的輸出,如警告,錯誤,當前狀態等,這個被重定向到2>。
您的第二行使用2> & 1,將stderr重定向到stdout,最後將stdout重定向到log.txt。
你試過
javac -Xstdout log.txt file.java
這將發送編譯器錯誤日誌文件,而不是stderr。
我看到重定向stderr給我輸出我想要的。爲什麼一切都記錄在標準錯誤,沒有標準輸出?另外,你能告訴我爲什麼javac file.java 2>&1> log.txt不起作用嗎? – jcee14 2008-11-25 15:48:41