在我的工作中,访问我们群集的边缘节点服务器每天都会重新实例化。这意味着我必须克隆我们的repo,并且每天早上安装一堆R包。我写了一个bash脚本(使用https://github.com/eddelbuettel/littler从命令行打开R)来自动执行此操作,并且除了一个打嗝外,它都可以工作。使用bash脚本安装R包 - 对提示做出响应
巴什称:这将打开R对话,并调用以下命令 [R install.R
:
repos <- "http://... [our CRAN equivalent]"
install.packages("[package_name]",repos)
现在,通常情况下,如果我是R中进入这个我自己,我会得到这是一个响应:
Installing package into ‘/usr/hdp/2.5.5.3-2/spark2/R/lib’ (as ‘lib’ is unspecified)
Warning in install.packages("[name_of_package]", repos = "http://...") :
'lib = "/usr/hdp/2.5.5.3-2/spark2/R/lib"' is not writable
Would you like to use a personal library instead? (y/n)
,我会说“Y”接着又“Y”时,它表明一个库来创建。但是,当我从bash脚本执行此操作时,它只是说该库不可写并中止。
两个方案我在这里看到: 1)我告诉它的库编写程序包中我已经试过这一点,而包没去那里,他们到达了空。没有什么是从回购实际下载的。
2)以某种方式让脚本能够在我需要的两个肯定的响应中输入,以便让R完成它的任务并创建它自己的库。
对这些任何建议的任何建议将不胜感激!
所以这个问题实际上更多的是与“小问题”,我用来与R接口的软件包。在你的例子中,通往test.sh的管道工作正常,但实际上我从内部运行R脚本shell脚本。由于某些原因,当我从命令行访问它时,R似乎没有给出提示。 –