2015-09-01 20 views
5

mam zainstalowane Git Bash 2.5.1 64-bit na świeżym systemie Windows 10 maszyny:skrypty powłoki z Git Bash 64-bitowym systemie Windows

[email protected] MINGW64 ~/Documents/FsCheck (master) 
$ git --version 
git version 2.5.1.windows.1 

Kiedy listy zawartości katalogu, mogę zobacz skrypt: (. niektóre pliki i foldery usunięte dla jasności)

[email protected] MINGW64 ~/Documents/FsCheck (master) 
$ ls 
appveyor.yml build.cmd build.sh*   Docs/ 
bin/   build.fsx Contributors.txt examples/ FsCheck.sln 

Zauważ, że skrypt build.sh ma gwiazdkę po rozszerzeniu. W konsoli jest również kolorowy, gdzie inne pliki są jasnoszare. Nie widziałem tego wcześniej, więc nie wiem, czy to coś znaczy.

Kiedy próbuję uruchomić skrypt, dostaję komunikat o błędzie:

[email protected] MINGW64 ~/Documents/FsCheck (master) 
$ build.sh 
bash: build.sh: command not found 

Ponadto, nie ma zakończenia zakładka dla któregokolwiek z build plików.

Jak uruchomić skrypt powłoki z Git Bash?

Odpowiedz

7

Prawdopodobnie masz ls aliasowany na ls -F. Więc gdy pojawi się końcowa gwiazdka, oznacza to, że plik jest wykonywalny.

W systemach POSIX nie można bezpośrednio uruchamiać plików w bieżącym katalogu (ze względów bezpieczeństwa). Jeśli chcesz, możesz użyć tej sztuczki:

./build.sh 
+0

To różni się od tego, jak Git Bash (32-bitowy, jak sądzę) ostatnio pracował dla mnie, ale działa, i nauczyłem się czegoś nowego dzisiaj, więc jestem szczęśliwy. Dziękuję Ci. –

+0

FWIW, Po prostu napotkam ten sam błąd, po zainstalowaniu najnowszego Gita i korzystaniu z niego [MinTTY] (https://mintty.github.io/) zamiast cmd.exe. To też zadziałało dla mnie. –

1

Możesz oczywiście edytować swoją PATH, dodając ";." na KONIEC bieżącej wartości. W mingw64_shell.bat zrobić

SET PATH=%PATH%;. 

Uwaga: Patrzę na mojej instalacji MSYS2, więc może trzeba spojrzeć na „bat” pliku, który uruchamia bash. Największy problem z zabezpieczeniami w domyślnej ścieżce WINDOWS, która miała "." przed ścieżką jest to, że pozwala użytkownikowi przeładować systemowy plik wykonywalny - to spowodowałoby, że twoje skrypty zrobiłyby jakieś dziwne rzeczy, szczególnie jeśli zaimportujesz je od kogoś innego.