9

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

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

и мой вопрос, почему он написал "Нет такого файла или каталога?msgstr "каждый каталог из переменной PATH существует.

5 ответов5

15

$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 нет.  И, очевидно, когда вы набираете командную строку, которая начинается со слова, которое не является командой, bash говорит, что :/home/bo/bin:/usr/local/bin:/usr/sbin… если слово содержит один или несколько символов No such file or directory , и / если это не так.

1

Набрав

$ PATH

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

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

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

Что вы ожидали от ввода только $PATH ?

0

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .