Dlaczego sh nie znajduje plików na mojej ścieżce, które istnieją?

0

Kiedy wpisuję to w sh, wyświetla:

$ $PATH
sh: 12: /bin:/usr/bin: not found

Ale mam folder / usr / bin i to jest mnóstwo rzeczy.

To samo z Zsh:

 $PATH
zsh: no such file or directory: /bin:/usr/bin

Co do cholery ? Jak to naprawić?

N07070
źródło
Jakie polecenie próbujesz uruchomić? Czy próbujesz znaleźć polecenie, które jest na twojej drodze?
DavidPostill
@DavidPostill Myślę, że on pisze $PATHi wykonuje bezpośrednio .
Rakholiya Jenish
1
@RakholiyaJenish Tak, to jasne. Ale dlaczego on to robi? Co on naprawdę próbuje zrobić?
DavidPostill
Myślę, że próbujesz uciec echo $PATH?
xuhdev,

Odpowiedzi:

2

PATH to zmienna środowiskowa w systemie Linux i innych systemach operacyjnych typu Unix, która informuje powłokę, które katalogi mają wyszukiwać pliki wykonywalne (tj. Gotowe do uruchomienia programy) w odpowiedzi na polecenia wydawane przez użytkownika.

Aby zobaczyć wartość PATHzmiennej, zrób to jak echo $PATH. W twoim przypadku shposzuka pliku wykonywalnego /bini /usr/binkatalogu.

Możesz także używać swoich shpoleceń tak, /bin/commandjakby plik wykonywalny znajdował commandsię w /binkatalogu. Na przykład zamiast używać lsmożesz użyć, /bin/lsponieważ pisanie lsuruchamia plik wykonywalny lsobecny w /bin. Jeśli lsnie ma tam /bin, to zajrzy /usr/bin. Jeśli lsnadal nie zostanie znaleziony w obu katalogach, będzie narzekać.

Próbując użyć $PATHlub /bin:/usr/bin:bezpośrednio, shmyśli, że ma uruchomić binplik wykonywalny znajdujący się w katalogu /bin:/usr/. To jest powód, który daje directory or file not foundlub not foundbłąd.

Aby uzyskać szczegółowe informacje na temat ŚCIEŻKI .

Rakholiya Jenish
źródło
Więc kiedy uruchomię to: ▶ echo $ PATH / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games: / media / HDD / Code / android-sdk-linux / plateform-tools: / media / HDD / Code / android-sdk-linux / tools Nie ma już błędów i nie ma ich
N07070
1
@ N07070 To dlatego, że PATHjest zmienną środowiskową, której używasz do drukowania $PATH. Dlatego nie będzie żadnego błędu.
Rakholiya Jenish