我正在shebang中使用Rscript
创建一个R脚本并输出到stdout。这很好,但是R向stderr输出了很多日志/调试消息(例如,它的导入是否正常,各种功能的状态,今天的天气如何等)。我怎么压制这个?
我知道suppressWarnings
和suppressMessages
,但这些函数包含了你想要沉默的任何函数。我可以将我的整个脚本包含在一个匿名函数中,然后将其传递给这些,但这似乎有点像一个奇怪的习语。 (尽管如此,如果这是唯一的方式,那么我猜这就是它的方式......)
另一个选择是将R脚本嵌入到bash脚本中并使用bash的IO重定向。同样,这似乎是一个迂回的解决方案,但我对此持开放态度!
我只是想知道是否有更好的方法?
如果要完全禁止所有stderr消息,请在脚本的早期放置此行:
sink(file("/dev/null", "w"), type="message")
显然这不会有助于调试......