当前位置: 首页 > 面试题库 >

在输出文件中捕获Rscript错误

邢炯
2023-03-14
问题内容

与类似的命令不同R CMD BATCH,在默认情况下,该命令会生成一个包含任何错误消息的输出文件,该错误消息会导致脚本的执行停止,但我无法找到一种方法来执行此操作Rscript。我尝试在Linux
Shell中使用管道来实现此目的:

RScript --no-save --no-restore --verbose myRfile.R > outputFile.Rout

但这只会outputFile.R传递发生错误之前发生的所有输出,因此该文件不包含任何错误信息。有谁知道如何捕获并执行R文件RScript并将其保存到文件中时发生的任何错误?


问题答案:
Rscript --no-save --no-restore --verbose myRfile.R > outputFile.Rout 2> errorFile.Rout

将输出和错误放在同一文件中(假设sh / bash)

Rscript --no-save --no-restore --verbose myRfile.R > outputFile.Rout 2>&1


 类似资料:
  • 我还在想方设法搞定PDO。 我有一个用PDO执行的insert语句。插入工作很好,但如果有一个错误,我希望它显示给用户。 我有下面的try catch块。 如果查询失败,或者假设有一个重复的IDNumber,我希望将此显示给用户。 如果我只是尝试回显变量$exception,它是不起作用的。 我想把mysql错误返回给用户。 我一如既往地感谢任何建议。 谢谢,瑞恩 更新 根据建议的答案编写新代码:

  • 除非你开发的是非常简单的控制台应用, 否则你应该不希望php脚本代码产生的输出 直接被扔到激活的终端上. 捕获这些输出和你刚才用以覆写启动处理器的方法类似. 在sapi_module_struct中还有⼀些有用的回调: typedef struct _sapi_module_struct { ... int (*ub_write)(const char *str, unsigned

  • 问题内容: 我想将特定“ top”命令的输出写入文件。我做了一些谷歌搜索,发现可以通过使用以下命令来完成。 其中-n用于指定迭代次数,-b用于批处理模式。如果让top进行10次迭代,则效果很好。但是,如果我用Ctrl-C中断了命令的运行,则输出文件似乎为空。 我不会事先知道迭代次数,因此我需要手动中断它。如何在不指定迭代的情况下捕获文件top的输出? 我想精确使用的命令是 并在需要时将其断开。但这

  • 问题内容: 我遇到了一个困扰我几天的问题。我在Python 2.7.10中使用了Paramiko模块,我想向Brocade路由器发出多个命令,但仅返回给定命令之一的输出,如下所示: 如果要打印完整的输出,它将包含发布到路由器的所有内容,但是我只想查看show命令的输出。 谁能解决这个问题? 我想问的最后一件事。我想过滤变量并检查是否出现诸如“ up”或“ down”之类的字符串,但是由于输出中的所

  • 问题内容: 我了解到,在Python中执行命令时,应该使用子进程。我想要实现的是通过ffmpeg对文件进行编码,并观察程序输出,直到文件完成。Ffmpeg将进度记录到stderr。 如果我尝试这样的事情: 调用child.communicate()后,程序无法继续执行,并等待命令完成。还有其他方法可以跟踪输出吗? 问题答案: communication()阻塞直到子进程返回,所以循环中的其余各行仅

  • 问题内容: 我需要一种方法来干扰编写xsl结果文档,以避免将它们写入文件系统。现在我的模板正在写到一个临时目录,然后我压缩该目录。我想用这种方式写到文件系统。我正在使用撒克逊处理器。可以使用仅使用标准Java库的解决方案。任何建议表示赞赏。 编辑: 我发现了.net saxon api的此类http://www.saxonica.com/documentation/dotnetdoc/Saxon/