2012-05-21 7 views
55

Когда я использую Git Bash (в Windows), я не могу запускать исполняемый файл без указания его полного пути, хотя он находится в папке, которая находится в моей переменной PATH. Похоже, что bash его не узнает. Зачем? Могу ли я это исправить?Git Bash не видит моего PATH

+1

Можете ли вы показать, что именно находится в переменной PATH? – choroba

+0

Хм, как это связано с моим вопросом? Если вы подозреваете, что он неверен, я уверен, что это не так, поскольку я могу запускать те же исполняемые файлы, используя обычную оболочку Windows (cmd). – ulu

+0

@ulu: это связано с вашим вопросом, потому что переменная PATH определяет, какие исполняемые файлы могут быть найдены ... Как выглядит переменная PATH из оболочки Bash? – jalf

ответ

30

Поставлено. Как пользователь Windows, я использую для ввода исполняемых имен без расширений. В моем случае я хотел выполнить файл с именем cup.bat. В оболочке Windows достаточно набрать cup. Баш не работает таким образом, он хочет получить полное имя. Ввод cup.bat решил проблему. (Я не смог запустить файл, хотя, по-видимому, так Баш не мог понять его содержание)

еще одна причина, чтобы переключиться на шикарный-ГИТ ..

Спасибо @tom за указание мне вправо направление.

+0

Пришел сюда, чтобы сказать это. Вместо этого вы получаете мое преимущество. – Chud37

36

Возможно, bash не видит ваш путь к Windows. Тип env|grep PATH в bash, чтобы подтвердить, какой путь его видит.

+1

В нем говорится: PATH =/c/Users/ulu/bin:.:/Usr/local/bin:/mingw/bin:/bin:/e/Программы/Ruby/bin:/c/P rogram Файлы/Общие Файлы/Microsoft Shared/Windows Live:/c/Program Files (x86)/C ommon Files/Microsoft Shared/Windows Live:/c/Windows/system32:/c/Windows:/c/Wind ows/System32/Wbem : /c/Windows/System32/WindowsPowerShell/v1.0 /:/e/Program Files ( x86)/Microsoft SQL Server/90/Tools/binn/ – ulu

+2

Попробуйте запустить «which your_batch_file.bat» (без кавычек). Он должен вернуть местоположение вашего пакетного файла, если он действительно находится на пути. – Tom

+1

Спасибо, ваше предложение помогло мне решить его! – ulu

7

Пока вы устанавливаете Git, вы можете выбрать параметр, показанный ниже, это поможет вам установить путь автоматически.

Git installation wizard

Его разработали для меня :)

+6

Как вы это сделаете после того, как git уже установлен? –

+1

@eranotzap переустанавливает Git с альтернативным вариантом? :) –

+1

@eranotzap Настройка Environemtal Variable else переустановите Git – Muthu

0

Для меня самым удобным должно было: 1) Создание каталога "бен" в корневом каталоге C: диск 2) Добавить «C:/бен;» в PATH в «Мой компьютер» -> «Свойства» -> «Окружающие переменные»

14

Следуя комментарию @ Daniel и благодаря ответу @ Tom, я узнал, что Git bash действительно использовал PATH, но не последние пути, которые я недавно установил. Чтобы обойти эту проблему, я добавил файл в моем доме (окна) папку с именем:

.bashrc

и содержание, как следующие:

PATH=$PATH:/c/Go/bin

, потому что я установка Go и этот путь содержал исполняемый файл go.exe Теперь Git bash смог распознать команду:

go

Возможно, в моем случае было бы достаточно перезагрузки системы, но я рад, что это решение работает в любом случае.

-3

Создайте переменную пользователя с именем Путь и добавьте как значение% Path%, из того, что я заметил, Git Bash видит только пользовательские переменные, а не системные переменные. Выполняя указанную процедуру, вы подвержете свою Системную переменную в пользовательских переменных.

-1

Не удаляйте (\) специальные символы при редактировании/добавлении к переменной $ PATH. Например, каталог приложений в программных файлах будет выглядеть следующим образом: PATH=$PATH:/c/Program Files (x86)/random/application

Не делайте этого:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/

Надеется, что это помогает.

4

Создайте файл в C: \ Users \ USERNAME, который называется config.bashrc, содержащий:

PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space 

Теперь переместите файл в командной строке в правильное место:

mv config.bashrc .bashrc 
1

Похоже, что основной причиной является то, что Git Bash не может правильно проанализировать переменную% USERPROFILE% правильно. Вместо того, чтобы сделать его относительно C: \ Users \\, он получает значение C: \ Windows \ System 32 \ systemprofile \ После того, как вы изменили это на полный адрес, он работает, и даже если я его снова верну, Git Bash по какой-то причине по-прежнему имеет правильную ПУТЬ.

2

Перезагрузите компьютер после добавления нового значения в PATH.

+0

Компьютер не нужно перезапускать, сеанс терминала выполняется. – christianbundy

+0

@christianbundy Я не уверен, но похоже, что когда-то перезапуск терминала не помог, но перезагрузка компьютера помогла, поэтому я написал этот ответ. Перезапуск терминала является первым, что я пытаюсь. – Pavel

-1

В Windows 7 Путь Переменные среды Я просто добавить в конце системной переменной пути

\; C: \ Program Files \ Git \ бен

и сейчас работает!

0

Я могу подтвердить, что перезапуск системы будет гарантировать, что PATH, установленный в переменной окружения в окнах, будет поднят git, и нет другого автоматического способа.

0

Я встречаюсь с этой проблемой, когда пытаюсь использовать mingw для компиляции xgboost lib в Win10. Наконец я нашел решение.

Создайте файл с именем .bashrc в своем домашнем каталоге (обычно это C: \ Users \ имя пользователя). Затем добавьте путь к нему. Не забывайте использовать кавычки, если ваш путь содержит пробел, и не забудьте использовать/с/вместо C:/

Например:

PATH = $ PATH: "/ с/Program Files/MinGW-w64/x86_64 -7.2.0-posix-seh-rt_v5-rev1/mingw64/bin "

0

Для тех из вас, кто пробовал все вышеупомянутые методы, включая систему Windows env. переменные, .bashrc, .bashprofile и т. д. И можете видеть правильный путь в «echo $ PATH» ... У меня может быть решение для вас.

подавить ошибки с помощью Exec 2>/Dev/нуль

Мой сценарий работает нормально, но кидал «команда не найдена» или «Нет каталогов найден» не ошибки, даже если, насколько я могу судить, пути были флешами. Итак, если вы подавите эти ошибки (возможно, придется добавить «set + e»), чем он работает правильно.

Смежные вопросы