Git Bash не бачить мого ПАТУ


107

Коли я використовую Git Bash (в Windows), я не можу запустити жоден виконуваний файл, не вказавши його повний шлях, хоча він розташований у папці, яка знаходиться в моїй змінній PATH. Схоже, Баш не розпізнає цього. Чому? Чи можна це виправити?


1
Чи можете ви показати, що саме є у вашій змінній PATH?
choroba

Хм, як це пов’язано з моїм запитанням? Якщо ви підозрюєте, що вона неправильна, я впевнений, що це не так, оскільки я можу запускати ті самі виконувані файли за допомогою звичайної оболонки Windows (cmd).
улу

@ulu: це пов'язано з вашим питанням, оскільки змінна PATH - це те, що визначає, які виконувані файли можна знайти ... Як виглядає змінна PATH з оболонки Bash?
jalf

Зокрема, він містить / e / Programs / Tools / bin десь близько до кінця, це шлях, який мене цікавить. Можливо, проблема полягає в тому, що я намагаюся запустити bat файл?
улу

Відповіді:


64

Зрозумів. Як користувач Windows, я звик вводити імена виконуваних файлів без розширень. У моєму випадку я хотів виконати файл з назвою cup.bat. У оболонці Windows введення cupбуде достатньо. Bash не працює таким чином, він хоче повне ім'я. Введення тексту cup.batвирішило проблему. (Я не зміг запустити файл, оскільки, очевидно, bash не зміг зрозуміти його вміст)

Ще одна причина перейти на posh-git ..

Дякую @Tom за те, що вказав на мене в потрібному напрямку.


5
Ви також можете використовувати псевдонім, щоб скоротити ім'я:alias cup=cup.bat
Віталій Датлінг

Windows використовує як PATH, так і PATH_EXTENSIONS для вирішення виконавчих файлів, тоді як у світі Linux використовується лише PATH
Ferrybig

Ваш сценарій оболонки точно не повинен називатися нічим .bat; розширення передбачає пакетний сценарій Windows - особливо на машині Windows.
трійчатка

Що вирішує posh-git? Вам більше не потрібно вводити розширення?
Qwerty

@Qwerty posh - консоль Powershell, перехід на неї означає більш зручну для Windows консоль з усіма знайомими командами та ярликами. І так, як і на будь-якій консолі Windows, вам не доведеться вводити ".exe" або ".bat"
ulu

53

Можливо, bash не бачить ваш шлях до Windows. Введіть env|grep PATHbash, щоб підтвердити, який шлях він бачить.


1
Тут написано: PATH = / c / Users / ulu / bin:.: / Usr / local / bin: / mingw / bin: / bin: / e / Programs / Ruby / bin: / c / P rogram Files / Common Files / Microsoft Shared / Windows Live: / c / програмні файли (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 / Програмні файли (x86) / Microsoft SQL Server / 90 / Інструменти / binn /
ulu

2
Спробуйте запустити "what your_batch_file.bat" (без лапок). Він повинен повернути розташування вашого пакетного файлу, якщо він дійсно стоїть на шляху.
Том

15
як я можу додати шляхи для перегляду git-bash?
Angel S. Moreno

14
@ AngelS.Moreno оновіть або створіть у своєму домашньому каталозі файл ".bashrc" (наприклад, "vim ~ / .bashrc" у git bash / cygwin), а потім додайте "PATH = $ PATH: <your_path_1>: <your_path_2>:. ..: <your_path_n> "до цього файлу. Отже, якби ви хотіли, щоб "/ usr / bin / mypath" знаходився в змінній PATH, цей рядок буде читати: PATH = $ PATH: / usr / bin / mypath
Даніель

35

Після коментаря @ Даніеля та завдяки відповіді @ Тома я дізнався, що Git bash справді використовував PATH, але не останні шляхи, які я нещодавно встановив. Щоб вирішити цю проблему, я додав файл у своєму домашньому каталозі (windows) з назвою:

.bashrc

і зміст наступним чином:

PATH=$PATH:/c/Go/bin

тому що я встановлював Go і цей шлях містив виконуваний файл go.exe тепер Git bash зміг розпізнати команду:

go

Можливо, просто перезавантаження системи було б достатньо в моєму випадку, але я радий, що це рішення працює в будь-якому випадку.


І додати кілька шляхів?
Нікіфорос

PATH=$PATH:/c/Go/bin:/c/other/path
Mikaël Mayer

Що ви маєте на увазі домашній каталог Windows? будь ласка уточніть.
Міан Асбат Ахмад

c:/Users/[myusername]/це мій домашній каталог
Mikaël Mayer

9

Під час встановлення Git ви можете вибрати параметр, показаний нижче, це допоможе вам встановити шлях автоматично.

Майстер встановлення Git

Це розроблено для мене :)


1
@eranotzap перевстановити Git за допомогою альтернативного варіанту? :)
Бретт Райан

1
@eranotzap Налаштуйте змінну Environemtal ще заново встановіть Git
Muthamizhchelvan. V

Як це допомагає отримати git bash використовувати шлях, коли кінцевим результатом є те, що git bash навіть не буде встановлений?
Жуль

@Jules Ні, під час встановлення Git Bash він запитає вас про параметри, як показано на скріншоті, там ви можете вибрати будь-який запит на вашу потребу, git bash буде встановлений за допомогою параметра select.
Мутамішельван. V

9

Створіть файл на C: \ Users \ USERNAME, який називається config.bashrc, що містить:

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

Тепер перемістіть файл у командному рядку у потрібне місце:

mv config.bashrc .bashrc

4

Перезавантажте комп'ютер після того, як додав нову цінність PATH.


1
Комп'ютер не потрібно перезавантажувати.
Крістіанбунді

2
@christianbundy Я не впевнений, але виглядає, що колись перезапуск терміналу не допоміг, але перезавантаження комп’ютера допомогло, тому я написав цю відповідь. Термінал перезавантаження - це перше, що я намагаюся.
Павло

Така проста відповідь, і цілком ефективна.
bobanahalf

4

Старе питання, але це може допомогти комусь іншому.

Я змінив свого користувача PATH в цілому, після цього я знову вийшов із системи та знову увійшов.

Це все! git bashзавантажено нове значення PATH.


Це можливо без закриття git bask або виходу з системи. Я маю на увазі, що я хочу встановити змінну шляху, і я можу використовувати її поточний git bash
KCS

Може бути , ви могли б зробити: export PATH=$NEW_PATH:$PATH. І робити речі нормально
fernandosavio

2

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


1

Здається, першопричиною тут є те, що Git Bash не в змозі завжди правильно проаналізувати змінну% USERPROFILE%. Замість того, щоб робити його відносно C: \ Users \\, він отримує значення C: \ Windows \ System 32 \ systemprofile \ Після зміни цього на повністю кваліфіковану адресу, він працює, і навіть якщо після цього я його поверну, Git Bash все ще має правильну PATH з певних причин.


1

У Windows 10 просто видаліть git та встановіть його знову. Він встановить змінну середовища автоматично для вас. Я видалив змінну оточення помилково, і я не міг використовувати git всередині свого IDE. Перевстановлення git вирішило цю проблему.


1

У разі , якщо ваш git-bash«и PATHподарунки , але не останнє , і ви не хочете перезавантаження , але регенерувати свої PATHс, ви можете спробувати закрити всі cmd.exe, powershell.exeі git-bash.exeта відкрити одне вікно cmd.exe з меню Пуск або на робочому столі і подивитися , якщо PATHокр оновлюється . Якщо ви змінили систему, PATHвам також потрібно відкрити одне привілейоване вікно cmd.

Примітка. Це працює не з усіма версіями Windows, і відкриття в cmd.exeбудь-якому іншому місці, крім меню «Пуск» або «Настільний», може не працювати , протестовано на моїх 3 комп’ютерах і 2 з них працює. Я не з'ясував, чому це працює, але оскільки PATHзмінна середовища генерується автоматично під час входу та виходу, я б не змішував цю змінну зі зміщенням змінної.


0

Для мене найзручнішим було: 1) Створити каталог «bin» у корені C: диск 2) Додати «C: / bin;» до PATH у "Мій комп'ютер -> Властивості -> Енвіронемні змінні"


0

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

Створіть у своєму домашньому каталозі файл із іменем .bashrc (зазвичай це C: \ Users \ ім'я користувача). Потім додайте до нього шлях. Не забудьте використовувати лапки, якщо ваш шлях містить порожні, і не забудьте використовувати / c / замість C: /

Наприклад:

PATH = $ PATH: "/ c / Файли програми / mingw-w64 / x86_64-7.2.0-posix-seh-rt_v5-rev1 / mingw64 / bin"


0

Я зіткнувся з дурною помилкою зі свого боку. У мене на машині Windows 10 була широка система та встановлений шлях для змінної користувача для моєї робочої області golang. Коли я видалив надмірний шлях змінної системи та вийшов із системи та знову ввімкнувся, мені вдалося викликати файли .exe в bash та закликати go env з успіхом.

Незважаючи на відповідь ОП, це ще одна проблема, яка може перешкодити бачити ваші шляхи. Я щойно перевірив bash з цією проблемою, і, здається, це дає конфлікт, який блокує bash від слідування за будь-яким із шляхів.


0

Я знаю, що це старе питання, але є два типи змінних оточення. Той, що належить Користувачеві, а одна - широка система. Залежно від того, як ви відкриєте git bash (з привілеєм користувача або з правами адміністратора), використовувана змінна середовища PATH може бути від вас змінних користувачів або від системних змінних. Дивись нижче: введіть тут опис зображення

як було сказано в попередній відповіді, перевірте команду, env|grep PATHщоб побачити, яку ви використовуєте, і оновіть свою змінну відповідно. До речі, не потрібно перезавантажувати систему. Просто закрийте і знову відкрийте git bash


0

У моєму випадку це сталося під час встановлення heroku cli та git bash, ось що я зробив для роботи.

дісталося до цього місця

C:\Users\<username here>\AppData\Local

і видаліть файл у моїй папці heroku. Тож я вирішив папку і запустив cmd. Це працює


-1

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

Не робіть цього:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/

Сподіваюся, це допомагає.


PATH=$PATH:/c/Program Files (x86)/random/application... це не правильний синтаксис bash для встановлення PATH. Це тимчасово додасть каталог /c/Programдо шляху, а потім спробуйте запустити програму Filesз аргументами (x86)/random/application. Єдине, що не так у вашому прикладі "не роби цього", це те, що він подвоїв косий рисок для дужок, коли одиночні косої риски є правильними.
Жуль

-2

Для тих із вас, хто випробував усі вищезазначені методи, включаючи систему Windows env. змінні, .bashrc, .bashprofile тощо. І може побачити правильний шлях у "echo $ PATH" ... Можливо, у вас є рішення.

придушити помилки за допомогою exec 2> / dev / null

Мій сценарій працює нормально, але викидав помилки "команда не знайдена" або "Не знайдено каталог", хоча, наскільки я можу сказати, шляхи були чіткими. Отже, якщо ви придушите ці помилки (можливо, вам доведеться також додати "set + e"), він працює належним чином.


1
Здається, це просто ігнорування помилок і не вирішення першопричини проблеми.
nmio

-3

Створіть змінну користувача на ім'я Path та додайте як значення% Path%, з того, що я помітив, Git Bash бачить лише Змінні користувача, а не Системні змінні. Виконуючи згадану процедуру, ви відкриєте свою змінну системи в змінних користувача.


-3

У Windows 7 Path Environment Variables я просто додаю наприкінці шляху System Variable

\; C: \ Файли програм \ Git \ bin

і це працює зараз!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.