在我的工作中,訪問我們羣集的邊緣節點服務器每天都會重新實例化。這意味着我必須克隆我們的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似乎沒有給出提示。 –