Недавно я добавил каталог в Windows PATH вручную, перейдя в Панель управления -> Система -> Расширенные настройки системы -> Переменные среды -> Пользовательские переменные -> PATH. (Windows 7, 64-разрядная версия.)
После перезагрузки и запуска cmd.exe echo %PATH%
указывает, что это сработало: я вижу каталог, который я недавно добавил в вывод.
Однако после запуска Git Bash выходные данные echo $PATH
не включают этот каталог.
Я мог бы добавить export PATH=$PATH:/c/my/path
в свой bashrc, но я бы предпочел Git Bash просто получить PATH из Windows, поэтому мне не нужно добавлять пути в двух местах. Как это можно сделать?
(Более общий связанный с этим вопрос: что настраивает GAT Bash для $ PATH? Я вижу пару записей, повторяющихся в разных местах, некоторые вещи в Windows% PATH% находятся в GAT Bash в $ PATH, но не другие. Что все происходит раньше Я получаю приглашение Git Bash, которое касается $ PATH?)
C:\cygwin\usr\x86_64-w64-mingw32\sys-root\mingw\bin
.Ответы:
В сеансе msysgit git bash используется сценарий
share/WinGit/Git Bash.vbs
, который не обращается к переменной среды и не изменяет ееPATH
(как, например, в этом несвязанном сценарии vbs )Сессия git bash просто добавит перед вашим текущим
PATH
:Вполне возможно, что сеанс mingw, упакованный с msysgit, не будет рассматриваться
bin
из другой установки mingw: вы можете проверить его, установив другой (более простой) каталог в вашем,PATH
и посмотреть, виден ли он еще в вашем сеансе git bash. Если нет, то это более общая проблема, которая касается всех каталогов, которые вы бы добавили в PATH.источник
"c:\Program Files\Java\jdk1.8.0_25"\bin
в моем пути windows преобразуется/c/Program Files/Java/jdk1.8.0_25"/bi
в путь git bash (обратите внимание, пропущены первый и последний символы) ... поэтому вопрос в том, как это происходит?Вот мой небольшой обход аналогичной проблемы (MSYS2 bash на Windows 10).
Идея состоит в том, чтобы преобразовать необходимые пути в пути в стиле Unix и добавить их в bash $ PATH, все это делается в .bashrc.
Не добавляйте необходимые пути к Win PATH. Вместо этого создайте новую переменную env в Windows, например MSYS2_WINPATH, и добавьте все разделенные точкой с запятой каталоги пути Windows к этой переменной. Добавьте% MSYS2_WINPATH% к% PATH%.
Теперь вставьте это в ваш .bashrc -
источник
Если значение PATH будет слишком длинным после того, как переменная PATH вашего пользователя будет конкатенирована с переменной PATH среды, Windows молча прекратит конкатенацию пользовательской переменной PATH.
Это может легко произойти после установки нового программного обеспечения и добавления чего-либо в PATH, тем самым нарушая существующее установленное программное обеспечение. Windows не работает!
Лучшее решение - отредактировать одну из переменных PATH на панели управления и удалить ненужные записи. Затем откройте новое окно CMD и посмотрите, отображаются ли все записи в «echo% PATH%».
источник
Попробуйте переместить каталог в начало вашей переменной пути. У меня была такая же проблема, как и у вас после установки p4merge. В список путей был добавлен каталог Perforce, а cmd.exe обнаружил p4merge, но не git shell (mingw). После безрезультатного поиска я попытался просто отредактировать переменную, чтобы сначала в моем пути появился каталог Perforce. Я запустил git shell и, вуаля, каталог включается в вывод
$ echo $path
и$ p4merge
открывает p4merge.Это своего рода неубедительный ответ, так как я не знаю, почему это работает, но если обходной путь помогает кому-то другому, отлично.
источник