我注意到以下内容,请点击HERE :
我问同样的问题,因为我需要知道我的 R 环境是从终端运行的,还是在 GUI 类型的环境中运行的。
我的问题的动机是我生成了许多 .pdf
报告,并且,如果用户调用了在 GUI 下生成报告的函数,那么我想使用以下命令打开报告系统默认的 .pdf
程序,但如果该脚本是从命令行运行的,或者通过在命令行启动的 session 运行的,则应禁止此操作。
在 RStudio 中,如果我运行 interactive()
,结果为 TRUE
,如果我在终端打开 R session 并运行相同的命令,结果为 TRUE
也是 TRUE
,所以,我的问题本质上是,我如何区分?我正在运行 MacOSX,但希望答案与 mac、unix 和 windows 相关。
干杯,
最佳答案
commandArgs()
将输出启动 R session 的命令行,.Platform$OS.type
将报告操作系统:
switch(.Platform$OS.type,
windows = if (grepl("Rterm", commandArgs())) cat("terminal\n") else cat("GUI\n"),
...fill in for each other operating system...
)
关于R 是否在 GUI 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37761879/