Немає такого файлу чи каталогу після введення $ PATH у терміналі


13

коли я пишу в терміналі

echo $PATH

мій вихід

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

але коли я пишу просто:

$PATH

цей вихід я не розумію правильно, вихід:

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

і моє запитання: чому він написав "Немає такого файлу чи каталогу?" існує кожен каталог зі змінної PATH.

Відповіді:


20

$PATHце змінна, про яку я впевнений, ви знаєте. Коли ця змінна буде вирішена, це було б те саме, що вводити :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin:і очікувати, що щось станеться. Причина echo $PATHпрацює в тому, що ви явно пересилаєте його на дисплей, а не говорите терміналу "робити" $PATH.


2

Якщо ви все ще не отримаєте його з інших відповідей, це те саме, що це:

$ 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

Першим словом кожного командного рядка має бути командаechoтака команда.  the,, and/orі :/home/bo/bin:/usr/local/bin:/usr/sbin…ні. І, мабуть, коли ви вводите командний рядок, який починається зі слова, яке не є командою, bash говорить, No such file or directoryякщо слово містить один чи більше /символів, а command not foundякщо ні.


1

Набравши текст

$ ПАТ

ви насправді не робите нічого іншого, крім розширення його вмісту в командному рядку:

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

і це не є дійсною командою, що законно веде до повідомлення, яке ви отримуєте.

Що ви очікували, що тільки введення тексту $PATHбуде робити?


Я здогадуюсь про очікування, $PATHяке по суті дозволить надрукувати змінну на екран, не намагаючись виконати її, однак це не так.
iDrwish

0

У Linux термінал чекає command, $ PATH не є командою, є variable.

Коли ви пишете, echo $PATHви запитуєте вміст змінної та за допомогою команди, яка echoпоказує її на екрані.


0

Змінна $PATHмістить декілька каталогів, розділених двокрапками. Оболонка очікує виконуваного файлу чи іншої команди (наприклад, вбудовану команду оболонки, як cd) як вхід. Команди, такі як lsі catпросто виконувані файли, розміщені в одному з каталогів $ PATH. Кілька каталогів, пов'язаних між собою колонами, як правило, не утворюють належного шляху до файлів UNIX. Зверніть увагу: якщо ви введете лише один із каталогів без двокрапки, ви отримаєте інший вихід.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.