Нет такого файла или каталога после ввода $ 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

Набрав

$ PATH

вы на самом деле ничего не делаете, кроме расширения его содержимого в командной строке:

: / Главная / Ьо / бен: / USR / местные / бен: / USR / SBIN: / USR / местные / SBIN: / USR / бен: / SBIN: / бен

и это недопустимая команда, законно ведущая к полученному вами сообщению.

Что вы ожидали, что только печатать $PATHбудет делать?


Я предполагаю ожидание, $PATHкоторое по существу выведет переменную на экран, не пытаясь ее выполнить, однако это не тот случай.
iDrwish

0

В Linux терминал ожидает command, $ PATH - это не команда, это a variable.

Когда вы пишете, echo $PATHвы спрашиваете содержимое переменной, и команда echoпоказывает ее на экране.


0

Переменная $PATHсодержит несколько каталогов, разделенных двоеточиями. Оболочка ожидает в cdкачестве входных данных исполняемый файл или другую команду (например, встроенную команду оболочки, например ). Такие команды, как lsи, catявляются просто исполняемыми файлами, расположенными в одном из каталогов $ PATH. Несколько каталогов, соединенных двоеточиями, обычно не образуют правильный путь к файлу UNIX. Обратите внимание: если вы введете только один из каталогов без двоеточия, вы получите другой вывод.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.