Brak takiego pliku lub katalogu po wpisaniu $ PATH w terminalu


13

kiedy piszę w terminalu

echo $PATH

moja produkcja to

:/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin

ale kiedy piszę tylko:

$PATH

to wyjście nie rozumiem dobrze, wyjście to:

bash: :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin: No such file or directory

a moje pytanie brzmi: dlaczego napisał „Nie ma takiego pliku lub katalogu?” istnieje każdy katalog ze zmiennej PATH.

Odpowiedzi:


20

$PATHto zmienna, której jestem pewien. Gdy ta zmienna zostanie rozwiązana, będzie to samo, co wpisanie :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin:i oczekiwanie, że coś się wydarzy. Powodem tego echo $PATHjest to, że jawnie wysyłasz go na ekran, a nie mówisz terminalowi, aby „zrobił” $PATH.


2

Jeśli nadal nie otrzymujesz odpowiedzi na inne odpowiedzi, jest to to samo:

$ echo the quick brown fox
the quick brown fox
$ the quick brown fox
bash: the: command not found

$ echo and/or the black and white cats
and/or the black and white cats
$ and/or the black and white cats
bash: and/or: No such file or directory

Pierwszym słowem każdego wiersza poleceń musi być polecenieechoto takie polecenie.  the, and/ori :/home/bo/bin:/usr/local/bin:/usr/sbin…nie są. I najwyraźniej, gdy wpiszesz wiersz poleceń rozpoczynający się od słowa, które nie jest poleceniem, bash mówi, No such file or directoryczy słowo zawiera jeden lub więcej /znaków, a command not foundjeśli nie.


1

Pisząc

ŚCIEŻKA $

w rzeczywistości nie robisz nic poza rozszerzaniem jego zawartości w wierszu poleceń:

: / home / bo / bin: / usr / local / bin: / usr / sbin: / usr / local / sbin: / usr / bin: / sbin: / bin

i nie jest to prawidłowe polecenie, które zgodnie z prawem prowadzi do otrzymywanej wiadomości.

Czego się spodziewałeś, że wystarczy tylko pisanie na klawiaturze $PATH?


Wydaje mi się, że oczekiwanie, $PATHktóre zasadniczo wydrukowałoby zmienną na ekranie bez próby jej wykonania, jednak tak nie jest.
iDrwish,

0

W Linuksie terminal czeka na command, $ PATH nie jest poleceniem, jest variable.

Kiedy piszesz echo $PATH, pytasz o zawartość zmiennej, a polecenie echowyświetla się na ekranie.


0

Zmienna $PATHzawiera wiele katalogów oddzielonych dwukropkami. Powłoka oczekuje jako pliku cdwejściowego pliku wykonywalnego lub innego polecenia (np. Polecenia wbudowanego w powłokę ). Polecenia takie jak lsi catto tylko pliki wykonywalne znajdujące się w jednym z katalogów $ PATH. Wiele katalogów połączonych ze sobą dwukropkami na ogół nie tworzy właściwej ścieżki pliku UNIX. Uwaga: jeśli wpiszesz tylko jeden katalog bez dwukropka, uzyskasz inny wynik.

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.