将shell环境变量传递给Rscript

时间:2016-10-24 20:50:33

标签: r

有没有办法将shell环境变量传递给Rscript。例如:

Rscript -e 'devtools::install_github("private/repo",auth_token = "$GITHUB_CRED")'

我试过这个,它只是传递了文字字符。我想知道是否还有另一种方式?

3 个答案:

答案 0 :(得分:0)

似乎有点荒谬,但是:

echo $GITHUB_CRED > file.txt
Rscript -e 'devtools::install_github("private/repo",auth_token = readLines("file.txt"))'

我在jenkins构建中使用这个和docker-slaves-plugin这样我就可以将所有配置存储在与我的软件包存储库相关联的Dockerfiles中(干净构建)

答案 1 :(得分:0)

您是否尝试过使用Sys.getenv

Rscript -e 'devtools::install_github("private/repo", auth_token=Sys.getenv("GITHUB_CRED"))'

答案 2 :(得分:0)

在狭义的问题上:“是的,Rscript可以”:

edd@max:~$ SOME_VAR="some value" Rscript -e 'print(Sys.getenv("SOME_VAR"))'
[1] "some value"
edd@max:~$ 

至于处理GitHub凭据,可能通过适当的GitHub客户端提供更好的解决方案。您是否尝试过(优秀且推荐的)git2r包裹?