Io-Redirection
管道沒有拾取標準輸出
我正在從
OS X 10.8
bash 終端執行一個 java 程序,並試圖重新定向它產生的輸出。但是,當通過管道執行此命令或將其重新定向到文件時,輸出為空白,但是我在終端中看到了輸出。
為了說明這一點:
> java program.java 13/10/02 14:18:30 WARN some 13/10/02 14:18:30 INFO log 13/10/02 14:18:30 INFO messages ... > java program.java > log > cat log >
是否可以設置 java 程序,使其寫入另一個流而不是
stdout
,但仍然在終端中產生輸出的流。這樣的事情可能嗎?
每個程序打開三個標准文件,
stdin
(標準輸入)、stdout
(標準輸出)和stderr
(標準錯誤)。寫入兩者stdout
並stderr
預設在終端中輸出。寫入錯誤和日誌消息是一種常見的約定,
stderr
而不是stdout
為了不將日誌或錯誤消息與實際程序輸出混合。stderr
您可以使用重定向2>
,例如:command 2> log