考虑以下跨平台测试:
> system('echo hello')
hello
如果在 RStudio 中我复制字符串system('echo hello')
并且运行reprex::reprex()
,则不会捕获输出:
有什么方法可以捕获输出吗?我在 macOS 上。
也许设置std_out_err = TRUE
可以完成这项工作。从功能文档:
std_out_err逻辑。是否为 reprex 渲染进程发送到 stdout 和 stderr 的输出附加一个部分。如果 reprex 产生子进程或 system() 调用,则可能需要显示输出。请注意,这不能与主 R 进程的输出正确交错,也不能保证标准输出和标准错误的行按正确的时间顺序排列。有关更多信息,请参见 callr::r()。阅读有关 opt() 的更多信息。
system("echo hello")
x <- 1
x
#> [1] 1
标准输出和标准错误
hello
由reprex 包(v0.3.0)于 2019 年 6 月 24 日创建