Nie znaleziono polecenia wc / cat


5

Próbuję uruchomić prosty skrypt bash, który używa wci catpoleceń. 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

1
Czy używasz pełnej ścieżki bezwzględnej do wc i cat w skrypcie? Środowisko, w którym działa skrypt, nie zawiera zawartości zmiennej PATH dla powłoki logowania. Jeśli to nie to, pokaż, w jaki sposób używasz ich w skrypcie.
Tyson

Niech to szlag! Użyłem PATH jako nazwy mojej zmiennej lokalnej, lol Wielka wskazówka Tyson, dzięki.
hdf

Odpowiedzi:


3

Jak wskazał @Tyson, PATHzmienna 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ć wcmoż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ł =)

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.