R交互式和批处理模式以及heIp浏览器

时间:2012-10-23 18:43:52

标签: r cran rapache rserve

在“批处理模式”下运行R时,interactive标志设置为false,这样可以防止任何类型的用户提示在嵌入/批处理设置的上下文中中断该进程。参见:

R -e 'interactive()'

使用Rscript时有些成立。也可以使用interactivity包手动设置该标志。为了测试,我们可以尝试:

R -e 'install.packages("anything")

假设尚未设置CRAN镜像,install.packages将不会显示某些交互式镜像选择器,而是抛出错误并退出。

但是,我注意到help?命令仍然有效。例如,下面的命令将显示帮助浏览器,直到我按q才会继续。

R -e 'help(lm); 1+2'

但是,在将输出发送到文件时,它不会显示交互式提示,只是将完整的帮助文档转储到输出中:

R -e 'help(lm); 1+2' > output.txt

我现在对使用help时真正发生的事情感到困惑。为什么即使R以批处理模式运行,您也会获得交互式帮助浏览器?这是R的功能,还是来自Debian / Ubuntu前端的功能?由于R等待使用输入,当R函数被调用时,help是否存在风险{> 1}},即Rserve,Rnside,JRI等?

1 个答案:

答案 0 :(得分:1)

帮助实际上产生了一个新的进程,寻呼机,就像“少”:

> help(lm); 1+2
[1]+  Stopped                 R -e 'help(lm); 1+2'
$ ps
  PID TTY          TIME CMD
27735 pts/6    00:00:00 bash
31607 pts/6    00:00:00 R
31615 pts/6    00:00:00 sh
31616 pts/6    00:00:00 pager
31617 pts/6    00:00:00 ps