我注意以下内容,点击HERE:
我问同样的问题,我需要知道我的R环境是从终端运行还是在GUI类型的环境中运行。
我的问题的动机是,我生成了一些.pdf
报告,如果用户调用了在GUI下生成报告的函数,那么我想使用系统默认{打开报告{ {1}}程序,但是如果脚本已经从命令行运行,或者通过在命令行开始的会话运行,那么这应该被禁止。
在RStudio中,如果我运行.pdf
,结果为interactive()
,如果我在终端打开R会话并运行相同的命令,结果也是TRUE
,所以,我的问题基本上是,我如何区分?我正在运行MacOSX,但希望答案与mac,unix和windoze相关。
干杯,
答案 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...
)