/ / Bash nie uruchomi mojego prostego skryptu powłoki [duplicate] - bash, shell, cp

Bash nie uruchomi mojego prostego skryptu powłoki [duplicate] - bash, shell, cp

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: wprowadź opis obrazu tutaj

Dlaczego mój skrypt zachowuje się inaczej niż polecenie / dlaczego nie znaleziono mojego skryptu?

Odpowiedzi:

2 dla odpowiedzi № 1

W 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