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

捕获退出状态和R中系统调用的输出

班宏毅
2023-03-14
问题内容

我已经打了一下,与system()system2()欢乐,我突然想到我能救输出或在对象退出状态。一个玩具的例子:

X <- system("ping google.com",intern=TRUE)

给我输出,而

X <- system2("ping", "google.com")

给我退出状态(在这种情况下为1,google不执行ping操作)。如果我既要输出又要退出状态,则必须执行2次系统调用,这似乎有点过头了。如何仅使用一个系统调用就能同时获得两者?

编辑:如果可能的话,我希望两者都在控制台中,而无需通过stdout="somefile.ext"system2调用中使用临时文件并随后将其读入。


问题答案:

从R 2.15开始,system2stdout和/或stderr为TRUE 时,会将返回值作为属性给出。这使获取文本输出和返回值变得容易。

在此示例中,ret最终是带有属性的字符串"status"

> ret <- system2("ls","xx", stdout=TRUE, stderr=TRUE)
Warning message:
running command ''ls' xx 2>&1' had status 1 
> ret
[1] "ls: xx: No such file or directory"
attr(,"status")
[1] 1
> attr(ret, "status")
[1] 1


 类似资料:
  • 问题内容: 我在Ubuntu 13.10机器上安装XML和RCurl时遇到麻烦。我今天执行了所有sudo更新和升级。 我正在尝试将拨浪鼓用于R。我无法安装使用拨浪鼓所需的“ XML”。一年后,这里几乎是同一问题,只是操作系统不同。以下是我返回的错误消息: 不太确定如何从这里继续。 问题答案: 在Ubuntu上安装curl和xml。跑 R中安装的软件包上的错误消息表示curl和xml库不存在或找不到

  • ...there are dark corners in the Bourne shell, and people use all of them. Chet Ramey exit 命令一般用于结束一个脚本,就像C语言的exit一样。它也能返回一个值给父进程。 每一个命令都能返回一个退出状态(有时也看做 返回状态 ).一个命令执行成功返回0,一个执行不成功的命令则返回一个非零值,此值通常可以被解释

  • YodaOS Event Event battery.info 表示电池状态,参数描述如下: 参数名称 类型 描述 data string 电池信息 data.batSupported bool 表示是否支持电池 data.batChargingOnline bool 表示是否在充电 data.batLevel int 当前电量 Event app.setup.network-available

  • 问题内容: 在客户端计算机上遇到网络问题时,我希望能够运行一些命令行并将其结果通过电子邮件发送给我自己。 我发现Runtime.exec将允许我执行任意命令,但是将结果收集到String中会更有趣。 我意识到我可以将输出重定向到文件,然后从文件中读取,但是我的幻想是告诉我,有一种更优雅的方法。 有什么建议吗? 问题答案: 你需要在此过程中同时捕获标准输出和标准错误。然后,你可以将std写出到文件/

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

  • 我正在制作一个游戏,这里我希望最终用户按下Ctrl W退出系统。 这是我使用的代码: ……但它似乎不起作用 有人能告诉我我的代码有什么问题吗? 提前谢谢!