3
以'批处理模式'运行R时,interactive
标志设置为false,这可以防止在嵌入/批处理设置的上下文中中断进程的任何用户提示。参见:R交互式和批处理模式以及heIp浏览器
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等待使用输入而在内部调用help
函数(即Rserve,RInside,JRI等)时,是否有R
变得无响应的风险?