Kiedy używam Git Bash (w systemie Windows), nie mogę uruchomić żadnego pliku wykonywalnego bez określenia jego pełnej ścieżki, chociaż znajduje się on w folderze, który znajduje się w mojej zmiennej PATH. Wygląda na to, że bash go nie rozpoznaje. Czemu? Czy mogę to naprawić?
107
Odpowiedzi:
Rozumiem. Jako użytkownik systemu Windows jestem przyzwyczajony do wpisywania nazw plików wykonywalnych bez rozszerzeń. W moim przypadku chciałem wykonać plik o nazwie
cup.bat
. W powłoce Windowscup
wystarczyłoby wpisanie . Bash nie działa w ten sposób, chce podać pełne imię i nazwisko. Pisanie na maszyniecup.bat
rozwiązało problem. (Nie mogłem jednak uruchomić pliku, ponieważ najwyraźniej bash nie mógł zrozumieć jego zawartości)Jeszcze jeden powód, by przejść na posh-git ...
Dzięki @Tom za wskazanie mi właściwego kierunku.
źródło
alias cup=cup.bat
.bat
; rozszerzenie implikuje skrypt wsadowy systemu Windows - szczególnie na komputerze z systemem Windows.Być może bash nie widzi ścieżki do systemu Windows. Wpisz
env|grep PATH
w bash, aby potwierdzić to, co ścieżka to widzi.źródło
Po komentarzu @ Daniela i dzięki odpowiedzi @ Toma dowiedziałem się, że Git bash rzeczywiście używa PATH, ale nie najnowszych ścieżek, które ostatnio zainstalowałem. Aby obejść ten problem, dodałem plik w moim katalogu domowym (Windows) o nazwie:
.bashrc
a treść następująca:
PATH=$PATH:/c/Go/bin
ponieważ instalowałem Go i ta ścieżka zawierała plik wykonywalny
go.exe
Now Git bash był w stanie rozpoznać polecenie:go
Być może w moim przypadku wystarczyłby tylko restart systemu, ale cieszę się, że to rozwiązanie i tak działa.
źródło
PATH=$PATH:/c/Go/bin:/c/other/path
c:/Users/[myusername]/
to mój katalog domowyPodczas instalowania Git możesz wybrać opcję pokazaną poniżej, która pomoże ci ustawić ścieżkę automatycznie.
U mnie wyszło :)
źródło
Utwórz plik w C: \ Users \ USERNAME o nazwie config.bashrc, zawierający:
Teraz przenieś plik z wiersza poleceń do właściwej lokalizacji:
źródło
Stare pytanie, ale może pomóc komuś innemu.
Zmieniłem cały mój użytkownik PATH, po czym wylogowałem się i ponownie się zalogowałem.
To jest to!
git bash
poprawnie załadował nową wartość PATH.źródło
export PATH=$NEW_PATH:$PATH
. I rób rzeczy normalnieUruchom ponownie komputer po dodaniu nowej wartości do PATH.
źródło
Mogę potwierdzić, że ponowne uruchomienie systemu zapewni, że PATH ustawiona w zmiennej środowiskowej w systemie Windows zostanie pobrana przez git i nie ma innego automatycznego sposobu.
źródło
Wygląda na to, że główną przyczyną jest to, że Git Bash nie zawsze jest w stanie poprawnie przeanalizować zmienną% USERPROFILE%. Zamiast ustawiać go względem C: \ Users \\, otrzymuje wartość C: \ Windows \ System 32 \ systemprofile \ Po zmianie tego na w pełni kwalifikowany adres działa, a nawet jeśli później ustawię go z powrotem, Git Bash nadal z jakiegoś powodu ma poprawną ŚCIEŻKĘ.
źródło
W systemie Windows 10 po prostu odinstaluj git i zainstaluj go ponownie. Automatycznie ustawi zmienną środowiskową za Ciebie. Przez pomyłkę usunąłem zmienną środowiskową i nie mogłem używać git w moim IDE. Ponowna instalacja git rozwiązała ten problem.
źródło
W przypadku, gdy
git-bash
„sPATH
prezenty, ale nie ostatni i nie chcesz restartu ale zregenerować swojePATH
s, można spróbować zamknąć wszystkocmd.exe
,powershell.exe
igit-bash.exe
i ponownie otworzyć jedno okno cmd.exe z menu Start lub pulpitu i sprawdzić, czyPATH
env jest aktualizowana . Jeśli zmieniłeś cały system,PATH
musisz również otworzyć jedno uprzywilejowane okno cmd.Uwaga: to nie działa ze wszystkimi wersjami systemu Windows i otwarte w
cmd.exe
dowolnym miejscu innym niż menu Start lub pulpit może nie działać , testowane na moich 3 komputerach, a 2 z nich działają. Nie zrozumiałem, dlaczego to działa, ale ponieważPATH
zmienna środowiskowa jest generowana automatycznie podczas logowania i wylogowywania, nie chciałbym zepsuć tej zmiennej konkatenacją zmiennych.źródło
Dla mnie najwygodniej było: 1) Utworzyć katalog „bin” w katalogu głównym dysku C: 2) Dodać „C: / bin;” do PATH w „Mój komputer -> Właściwości -> Zmienne środowiskowe”
źródło
Spotykam się z tym problemem, gdy próbuję użyć mingw do skompilowania biblioteki xgboost w Win10. Wreszcie znalazłem rozwiązanie.
Utwórz plik o nazwie .bashrc w swoim katalogu domowym (zwykle C: \ Users \ nazwa_użytkownika). Następnie dodaj do niego ścieżkę. Pamiętaj, aby używać cudzysłowów, jeśli ścieżka zawiera puste miejsce, i pamiętaj, aby użyć / c / zamiast C: /
Na przykład:
PATH = $ PATH: "/ c / Program Files / mingw-w64 / x86_64-7.2.0-posix-seh-rt_v5-rev1 / mingw64 / bin"
źródło
Popełniłem głupi błąd z mojej strony. Miałem szeroki system i ścieżkę zmiennej użytkownika ustawioną dla mojego obszaru roboczego golang na moim komputerze z systemem Windows 10. Kiedy usunąłem nadmiarową ścieżkę zmiennej systemowej, wylogowałem się i włączyłem ponownie, mogłem z powodzeniem wywołać pliki .exe w bashu i wywołać go env.
Chociaż odpowiedziano na OP, jest to kolejny problem, który może uniemożliwić bashowi zobaczenie twoich ścieżek. Właśnie przetestowałem bash ponownie z tym problemem i wydaje się, że powoduje to jakiś konflikt, który blokuje bash przed podążaniem którąkolwiek ze ścieżek.
źródło
Wiem, że to stare pytanie, ale istnieją dwa rodzaje zmiennych środowiskowych. Ten należący do użytkownika i jeden w całym systemie. W zależności od tego, jak otworzysz git bash (z uprawnieniami użytkownika lub z uprawnieniami administratora), używana zmienna środowiskowa PATH może pochodzić z Ciebie Zmienne użytkownika lub ze zmiennych systemowych. Zobacz poniżej:
jak wspomniano w poprzedniej odpowiedzi, sprawdź za pomocą polecenia,
env|grep PATH
którego używasz, i odpowiednio zaktualizuj zmienną. BTW, nie ma potrzeby ponownego uruchamiania systemu. Po prostu zamknij i ponownie otwórz git bashźródło
W moim przypadku wydarzyło się to podczas instalacji heroku cli i git bash, oto co zrobiłem, aby pracować.
dotarłem do tej lokalizacji
C:\Users\<username here>\AppData\Local
i usuń plik w moim przypadku w folderze heroku. Usunąłem więc folder i uruchomiłem cmd. To działa
źródło
Nie zmieniaj znaczenia znaków specjalnych (\) podczas edycji / dodawania do zmiennej $ PATH. Na przykład katalog aplikacji w plikach programu wyglądałby tak:
PATH=$PATH:/c/Program Files (x86)/random/application
Nie rób tego:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/
Mam nadzieję że to pomoże.
źródło
PATH=$PATH:/c/Program Files (x86)/random/application
... to nie jest poprawna składnia basha do ustawiania PATH. Spowoduje to tymczasowe dodanie katalogu/c/Program
do ścieżki, a następnie spróbuje uruchomić programFiles
z argumentami(x86)/random/application
. Jedyną wadą twojego przykładu „nie rób tego” jest to, że ma podwojone ukośniki odwrotne w nawiasach, gdy pojedyncze ukośniki odwrotne są poprawne.Dla tych z Was, którzy wypróbowali wszystkie wyżej wymienione metody, w tym system Windows env. zmienne, .bashrc, .bashprofile, itp. I widzę poprawną ścieżkę w 'echo $ PATH' ... Mogę mieć dla Ciebie rozwiązanie.
pomiń błędy za pomocą exec 2> / dev / null
Mój skrypt działa poprawnie, ale wyświetlał błędy „nie znaleziono polecenia” lub „Nie znaleziono katalogu”, mimo że, o ile wiem, ścieżki były puste. Tak więc, jeśli pominiesz te błędy (może być też konieczne dodanie „set + e”), to działa poprawnie.
źródło
Utwórz zmienną użytkownika o nazwie Path i dodaj jako wartość% Path%, z tego, co zauważyłem, Git Bash widzi tylko zmienne użytkownika, a nie zmienne systemowe. Wykonując wspomnianą procedurę, ujawnisz swoją zmienną systemową w zmiennych użytkownika.
źródło
W Zmienne środowiskowe ścieżki systemu Windows 7 po prostu dodaję na końcu ścieżki zmiennej systemowej
\; C: \ Program Files \ Git \ bin
i działa teraz!
źródło