Коли я використовую Git Bash (в Windows), я не можу запустити жоден виконуваний файл, не вказавши його повний шлях, хоча він розташований у папці, яка знаходиться в моїй змінній PATH. Схоже, Баш не розпізнає цього. Чому? Чи можна це виправити?
Коли я використовую Git Bash (в Windows), я не можу запустити жоден виконуваний файл, не вказавши його повний шлях, хоча він розташований у папці, яка знаходиться в моїй змінній PATH. Схоже, Баш не розпізнає цього. Чому? Чи можна це виправити?
Відповіді:
Зрозумів. Як користувач Windows, я звик вводити імена виконуваних файлів без розширень. У моєму випадку я хотів виконати файл з назвою cup.bat
. У оболонці Windows введення cup
буде достатньо. Bash не працює таким чином, він хоче повне ім'я. Введення тексту cup.bat
вирішило проблему. (Я не зміг запустити файл, оскільки, очевидно, bash не зміг зрозуміти його вміст)
Ще одна причина перейти на posh-git ..
Дякую @Tom за те, що вказав на мене в потрібному напрямку.
alias cup=cup.bat
.bat
; розширення передбачає пакетний сценарій Windows - особливо на машині Windows.
Можливо, bash не бачить ваш шлях до Windows. Введіть env|grep PATH
bash, щоб підтвердити, який шлях він бачить.
Після коментаря @ Даніеля та завдяки відповіді @ Тома я дізнався, що Git bash справді використовував PATH, але не останні шляхи, які я нещодавно встановив. Щоб вирішити цю проблему, я додав файл у своєму домашньому каталозі (windows) з назвою:
.bashrc
і зміст наступним чином:
PATH=$PATH:/c/Go/bin
тому що я встановлював Go і цей шлях містив виконуваний файл go.exe
тепер Git bash зміг розпізнати команду:
go
Можливо, просто перезавантаження системи було б достатньо в моєму випадку, але я радий, що це рішення працює в будь-якому випадку.
PATH=$PATH:/c/Go/bin:/c/other/path
c:/Users/[myusername]/
це мій домашній каталог
Під час встановлення Git ви можете вибрати параметр, показаний нижче, це допоможе вам встановити шлях автоматично.
Це розроблено для мене :)
Створіть файл на C: \ Users \ USERNAME, який називається config.bashrc, що містить:
PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space
Тепер перемістіть файл у командному рядку у потрібне місце:
mv config.bashrc .bashrc
Перезавантажте комп'ютер після того, як додав нову цінність PATH.
Старе питання, але це може допомогти комусь іншому.
Я змінив свого користувача PATH в цілому, після цього я знову вийшов із системи та знову увійшов.
Це все! git bash
завантажено нове значення PATH.
export PATH=$NEW_PATH:$PATH
. І робити речі нормально
Я можу підтвердити, що перезапуск системи дозволить переконатися, що встановлений PATH у змінній оточення у windows підбирається git і немає іншого автоматичного способу.
Здається, першопричиною тут є те, що Git Bash не в змозі завжди правильно проаналізувати змінну% USERPROFILE%. Замість того, щоб робити його відносно C: \ Users \\, він отримує значення C: \ Windows \ System 32 \ systemprofile \ Після зміни цього на повністю кваліфіковану адресу, він працює, і навіть якщо після цього я його поверну, Git Bash все ще має правильну PATH з певних причин.
У разі , якщо ваш git-bash
«и PATH
подарунки , але не останнє , і ви не хочете перезавантаження , але регенерувати свої PATH
с, ви можете спробувати закрити всі cmd.exe
, powershell.exe
і git-bash.exe
та відкрити одне вікно cmd.exe з меню Пуск або на робочому столі і подивитися , якщо PATH
окр оновлюється . Якщо ви змінили систему, PATH
вам також потрібно відкрити одне привілейоване вікно cmd.
Примітка. Це працює не з усіма версіями Windows, і відкриття в cmd.exe
будь-якому іншому місці, крім меню «Пуск» або «Настільний», може не працювати , протестовано на моїх 3 комп’ютерах і 2 з них працює. Я не з'ясував, чому це працює, але оскільки PATH
змінна середовища генерується автоматично під час входу та виходу, я б не змішував цю змінну зі зміщенням змінної.
Я зустрічаюся з цією проблемою, коли намагаюся використовувати 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"
Я зіткнувся з дурною помилкою зі свого боку. У мене на машині Windows 10 була широка система та встановлений шлях для змінної користувача для моєї робочої області golang. Коли я видалив надмірний шлях змінної системи та вийшов із системи та знову ввімкнувся, мені вдалося викликати файли .exe в bash та закликати go env з успіхом.
Незважаючи на відповідь ОП, це ще одна проблема, яка може перешкодити бачити ваші шляхи. Я щойно перевірив bash з цією проблемою, і, здається, це дає конфлікт, який блокує bash від слідування за будь-яким із шляхів.
Я знаю, що це старе питання, але є два типи змінних оточення. Той, що належить Користувачеві, а одна - широка система. Залежно від того, як ви відкриєте git bash (з привілеєм користувача або з правами адміністратора), використовувана змінна середовища PATH може бути від вас змінних користувачів або від системних змінних. Дивись нижче:
як було сказано в попередній відповіді, перевірте команду, env|grep PATH
щоб побачити, яку ви використовуєте, і оновіть свою змінну відповідно. До речі, не потрібно перезавантажувати систему. Просто закрийте і знову відкрийте git bash
Не уникайте (\) спеціальних символів під час редагування / додавання до змінної $ 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
. Єдине, що не так у вашому прикладі "не роби цього", це те, що він подвоїв косий рисок для дужок, коли одиночні косої риски є правильними.
Для тих із вас, хто випробував усі вищезазначені методи, включаючи систему Windows env. змінні, .bashrc, .bashprofile тощо. І може побачити правильний шлях у "echo $ PATH" ... Можливо, у вас є рішення.
придушити помилки за допомогою exec 2> / dev / null
Мій сценарій працює нормально, але викидав помилки "команда не знайдена" або "Не знайдено каталог", хоча, наскільки я можу сказати, шляхи були чіткими. Отже, якщо ви придушите ці помилки (можливо, вам доведеться також додати "set + e"), він працює належним чином.
Створіть змінну користувача на ім'я Path та додайте як значення% Path%, з того, що я помітив, Git Bash бачить лише Змінні користувача, а не Системні змінні. Виконуючи згадану процедуру, ви відкриєте свою змінну системи в змінних користувача.
У Windows 7 Path Environment Variables я просто додаю наприкінці шляху System Variable
\; C: \ Файли програм \ Git \ bin
і це працює зараз!