Kiedy wykonujęinit-hooks
dostaję
bash: init-hooks: command-not found
Oto zawartość init-hooks:
#!/bin/bash
set -e
printf "ncopying hooksnn"
cp ./hooks/* ../../.git/hooks
Kiedy wykonuję cp ./hooks/* ../../.git/hooks
z bash bezpośrednio wykonanie jest udane. (zauważ, że jest to to samo polecenie co w skrypcie)
Dowód plików znajduje się w katalogu i wyniki wykonania:
Dlaczego mój skrypt zachowuje się inaczej niż polecenie / dlaczego nie znaleziono mojego skryptu?
Odpowiedzi:
2 dla odpowiedzi № 1W systemach Linux (gdzie bash
pochodzi) z bieżącego katalogu zazwyczaj nie jest uwzględnione w ścieżce ze względów bezpieczeństwa.
Biegać echo $PATH
aby sprawdzić, które katalogi są używane do wyszukiwania plików wykonywalnych, gdy są one podane w wierszu poleceń bez ścieżki. Aktualny katalog (.
) nie powinno tam być.
Uruchom skrypt jako ./init-hooks
i bash
znajdzie to.
0 dla odpowiedzi nr 2
Podejrzewam, że prowadzę to po drodze
./init_hooks
lub wpisz pełną nazwę pliku.
upewnij się, że skrypt jest wykonywalny
chmod + x ./init_hooks