2014-10-29 73 views
1

我使用的是Ubuntu 14.04。我喜歡使用命令Rscript從終端(bash)運行R腳本。我喜歡我的輸出重定向到一個文件,例如:爲什麼這個R輸出沒有被重定向?

Rscript some_R_code.R > output.log & 

(我喜歡的背景,這就是爲什麼我用&運行它)。

實際上,99%的輸出確實存在於該文件中。但是,我確實收到了那些沒有的奇怪小信息。例如:

Warning message: 
replacing previous import ‘getCall’ when loading ‘fBasics’ 

被輸出到終端,當我想要它的文件。

這是什麼原因造成的,我該如何解決?

+1

你只是重定向STDOUT。警告消息正在發送給STDERR。你如何重定向STDERR,因shell而異(bash參見[here](http://stackoverflow.com/questions/818255/in-the-shell-what-is-21/818284#818284)。或者,在R中,你可以通過[sink()]將STDERR重定向到STDOUT(http://stackoverflow.com/questions/4112896/how-can-i-redirect-r-warning-messages-to-stdout) – MrFlick 2014-10-29 18:53:43

回答

4

您將stdout指向文件,但警告實際上是stderr。您可以使用&>重定向都stderrstdout

Rscript some_R_code.R &> output.log & 

或者你可以重定向stderr到一個單獨的文件:

Rscript some_R_code.R > output.log 2> err.log & 
相關問題