【问题标题】:How to execute git-bash command with system() or shell() in R如何在 R 中使用 system() 或 shell() 执行 git-bash 命令
【发布时间】:2019-09-27 21:21:42
【问题描述】:

我想通过 R 中的 system()shell() 函数在 git-bash shell 中运行一些命令。我在 Windows 上,默认 shell 是命令提示符。有什么办法可以将system() 中的shell 切换为git-bash

谢谢

【问题讨论】:

  • 我不确定我是否理解。我在带有 git-bash 的 Windows 上,system('"/Program Files/Git/usr/bin/ls.exe"') 无需更改任何内容即可专门使用 git-bash。也许您需要更新您的PATH env-var?你在尝试什么不起作用?
  • 在 RStudio 中使用终端选项卡时,我的 git 凭据在 git-bash 中工作正常(git-bash 是我在终端选项卡中的默认 shell)。但是,当我在system() 中尝试git clone git@github.com:someuser/somefolder 时,它无法识别我的凭据。我知道我也可以在命令提示符下设置我的凭据,但我不想这样做。

标签: r git-bash


【解决方案1】:

如果你的%PATH%包含C:\Program Files (x86)\Git\bin\,你应该可以系统调用:

bash --login -i -c "your command"

OP JdeMello 确认in the comments

是的:PATH 中没有 C:\Program Files\Git\bin

为了补全,我们可以在R的PATH中添加Git\bin(如果需要的话):

if(length(grep("(?i)Git//bin", Sys.getenv("PATH"))) == 0) 
    Sys.setenv(PATH=paste0(Sys.getenv("PATH"),";C://Program Files//Git//bin")) 

这对我有用。

【讨论】:

  • 是的。 PATH 中没有 C:\Program Files\Git\bin。为了完成,我们可以在R中添加Git\binPATH(如果需要):if(length(grep("(?i)Git//bin", Sys.getenv("PATH"))) == 0) Sys.setenv(PATH=paste0(Sys.getenv("PATH"),";C://Program Files//Git//bin")) 。这对我有用。谢谢@VonC!
  • @JdeMello 感谢您的反馈。我已将您的评论包含在答案中以提高知名度。
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 2015-05-22
  • 2014-01-11
  • 1970-01-01
  • 1970-01-01
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多