Окна и Git Баш: путь Баш читать окна системной переменной %PATH%

Я недавно добавил каталог в путь Windows вручную, зайдя в Панель управления - > Система - > Дополнительные Системные настройки - > Переменные среды - > пользовательские переменные - > путь. (ОС Windows 7, 64-разрядная.)

после перезагрузки и запуска cmd.exe,echo %PATH% указывает, что это сработало: я вижу каталог, который я недавно добавил в выводе.

однако, после запуска Git Bash, вывод echo $PATH не включает этот каталог.

я мог бы добавить export PATH=$PATH:/c/my/path в моем bashrc, но я бы предпочел Git Bash просто получить путь из Windows, поэтому мне не нужно помнить, чтобы добавить пути в два места. Как это можно сделать?

(более общие вопросы, что задает путь ГИТ Баша? Я видел пару записей повторяются в разных местах, некоторые вещи, которые в Windows %путь% в $путь ГИТ Баш, а не другим. Что все происходит, прежде чем я получу приглашение Git Bash, которое коснется $PATH?)

1
задан Ahmed Fasih
27.03.2023 11:04 Количество просмотров материала 2453
Распечатать страницу

4 ответа

сеанс msysgit Git bash использует сценарий share/WinGit/Git Bash.vbs, который не имеет доступа или изменить переменную среды PATH (как в этот несвязанный сценарий vbs, например)

сеанс Git bash просто добавит перед вашим текущим PATH:

.:/usr/local/bin:/mingw/bin:/bin:

вполне возможно, что сессии MinGW в комплекте с msysgit не считать bin от другой установки mingw: вы можете проверить его путем устанавливать другие (проще) каталог для PATH и посмотреть, если он все еще виден в вашем Git bash сессии. Если нет, то это более общий вопрос, который касается все каталоги, которые нужно добавить в путь.

3
отвечен VonC 2023-03-28 18:52

вот мой небольшой обходной путь для подобной проблемы (MSYS2 bash на Windows 10).

идея состоит в том, чтобы преобразовать необходимые пути в пути Unix-стиля и добавить их в bash $PATH, все сделано.bashrc.

Не добавлять необходимые пути для победы пути. Вместо этого создайте новый env var в Windows, например MSYS2_WINPATH, и добавьте к этой переменной все каталоги пути Windows, разделенные точкой с запятой. Добавить %MSYS2_WINPATH% до %Путь%.

теперь вставьте это в ваш .bashrc -

################################## Construct PATH variable ##################################

winpath=$(echo $MSYS2_WINPATH | tr ";" "\n" | sed -e 's/\/\\/g' | xargs -I {} cygpath -u {})
unixpath=''

# Set delimiter to new line
IFS=$'\n'

for pth in $winpath; do unixpath+=$(echo $pth)":"; done

export PATH=$(echo $PATH:$unixpath | sed -e 's/:$//g')
unset IFS
unset unixpath
unset winpath

################################# Constructed PATH variable #################################
3
отвечен anubhav 2023-03-28 21:09

Если значение пути слишком велико после объединения переменной пути пользователя с переменной пути среды, Windows автоматически не сможет объединить переменную пути пользователя.

Это может легко случиться после того как новое програмное обеспечение установлено и добавляет что-то к путю, таким образом ломая существующее установленное програмное обеспечение. Окна выходят из строя!

лучшее исправление-изменить одну из переменных пути на панели управления и удалить ненужные записи. Затем откройте новое окно CMD и посмотреть, если все записи отображаются в " echo % PATH%".

2
отвечен Tony OHagan 2023-03-28 23:26

попробуйте переместить каталог в начало переменной PATH. У меня была та же проблема, что и у вас после установки p4merge. Каталог perforce был добавлен к пути, и p4merge был найден cmd.exe, но не git shell (mingw). После бесплодного поиска я попытался просто отредактировать переменную так, чтобы каталог perforce появился первым на моем пути. Я запустил git shell и, вуаля, каталог включен в вывод $ echo $path и $ p4merge открывает p4merge.

Это какой-то хромый ответ, так как я не знаю, почему это работает, но если обход помогает кому-то другому, здорово.

1
отвечен gilly3 2023-03-29 01:43

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх