Próbuję uruchomić prosty skrypt bash, który używa wc
i cat
poleceń. Skrypt nie działa z tym:
wc: command not found
lub ten (po tym, jak skomentowałem ciąg, który używa wc):
cat: command not found
Nie mam pojęcia, co się dzieje. Podobny skrypt, który zawiera dokładnie te same fragmenty kodu, działa idealnie. Oba skrypty są używane w tych samych warunkach. Oprócz,
machine:~ user$ which wc
/usr/bin/wc
i
machine:~ user$ which cat
/bin/cat
command-line
bash
unix
hdf
źródło
źródło
Odpowiedzi:
Jak wskazał @Tyson,
PATH
zmienna zawiera odpowiedź.Chciałem tylko zauważyć, że stosowanie pełnych ścieżek w skryptach jest zwykle uważane za dobrą praktykę. Na przykład zamiast dzwonić
wc
możesz zadzwonić/usr/bin/wc
. Oprócz rozwiązania powyższego problemu, jest on bezpieczniejszy, ponieważ uniemożliwiasz uruchomienie aplikacji, którą ktoś mógł umieścić w Twojej ŚCIEŻCE o tej samej nazwie ... Nie pamiętam nazwy tych ataków, ale masz pomysł =)źródło