R是否在GUI中运行?

时间:2016-06-11 08:58:16

标签: r user-interface command

我注意以下内容,点击HERE

我问同样的问题,我需要知道我的R环境是从终端运行还是在GUI类型的环境中运行。

我的问题的动机是,我生成了一些.pdf报告,如果用户调用了在GUI下生成报告的函数,那么我想使用系统默认{打开报告{ {1}}程序,但是如果脚本已经从命令行运行,或者通过在命令行开始的会话运行,那么这应该被禁止。

在RStudio中,如果我运行.pdf,结果为interactive(),如果我在终端打开R会话并运行相同的命令,结果也是TRUE,所以,我的问题基本上是,我如何区分?我正在运行MacOSX,但希望答案与mac,unix和windoze相关。

干杯,

1 个答案:

答案 0 :(得分:2)

commandArgs()将输出启动R会话的命令行,.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...
)