Dlaczego mój skrypt bash nie działa? ("nie znaleziono polecenia")

0

Napisałem bardzo prosty skrypt, który wygląda tak:

$ cat pack.sh
#!/bin/bash
cd log
rm development.log
cd ..
tar zcvf my_tar_ball.tar.gz *

Ale to nie działa:

$ pack.sh
pack.sh: command not found

which bashzwraca /bin/bashi pack.shjest wykonywalny:

$ ls -ll pack.sh 
-rwxrwxr-x 1 misha misha 75 2012-02-04 22:11 pack.sh

Co może być problemem?

(BTW, source pack.shdziała!)

Misza Moroszko
źródło

Odpowiedzi:

4

Jeśli nie umieściłeś katalogu skryptów w swoim PATH(który jest zmienną środowiskową), i. (bieżącego katalogu) nie ma w PATHżadnym z nich, możesz aktywować skrypt w następujący sposób:

$ ./pack.sh
kev
źródło
Zignoruj ​​moją odpowiedź, @kev zaktualizował swoją odpowiedź. Aby dodać do odpowiedzi kev, powodem, dla którego nie działa bez ./, jeśli jest z przodu, ponieważ bieżący katalog nie znajduje się w $ PATH.
lupincho