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!)

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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.