Я хотел бы запустить некоторую команду в оболочке git-bash с помощью функций system() или shell() в R. Я работаю в Windows, а оболочкой по умолчанию является командная строка. Можно ли как-нибудь переключить оболочку в system() на git-bash?
Спасибо
Мои учетные данные git отлично работают в git-bash при использовании вкладки терминала в RStudio (git-bash — это моя оболочка по умолчанию на вкладке «Терминал»). Однако, когда я пытаюсь git clone [email protected]:someuser/somefolder в system(), он не распознает мои учетные данные. Я понимаю, что могу установить свои учетные данные и в командной строке, но я бы не хотел этого делать.





Если ваш %PATH% включает C:\Program Files (x86)\Git\bin\, вы должны иметь возможность системного вызова:
bash --login -i -c "your command"
ОП ЖдеМелло подтверждает в комментариях:
Yup: Didn't have
C:\Program Files\Git\bininPATH.For completion, we can add
Git\binto PATH inR(if necessary):if (length(grep("(?i)Git//bin", Sys.getenv("PATH"))) == 0) Sys.setenv(PATH=paste0(Sys.getenv("PATH"),";C://Program Files//Git//bin"))That worked for me.
Ага. Не было C:\Program Files\Git\bin в PATH. Для завершения мы можем добавить Git\bin к PATH в R (если необходимо): if (length(grep("(?i)Git//bin", Sys.getenv("PATH"))) == 0) Sys.setenv(PATH=paste0(Sys.getenv("PATH"),";C://Program Files//Git//bin")) . Это сработало для меня. Спасибо @VonC!
@JdeMello Спасибо за отзыв. Я включил ваш комментарий в ответ для большей наглядности.
Я не уверен, что понимаю. Я использую Windows с git-bash, и
system('"/Program Files/Git/usr/bin/ls.exe"')работает без необходимости что-либо менять, чтобы специально использовать git-bash. Возможно, вам нужно обновитьPATHenv-var? Что вы пытаетесь, что не работает?