В Cygwin почему echo $ PATH работает, но $ PATH не работает?
362
Hashim
Как видно здесь, выполнение echo $PATHдает мне мой полный PATH, но выполнение просто $PATHдает неполную версию, которая выглядит так, как будто она где-то не экранирована должным образом:
Тем не менее, когда я просматриваю свои файлы конфигурации, единственные соответствующие строки для PATH выглядят так:
... в .bash_profile. Мне кажется, что оба правильно отформатированы, поэтому я не уверен, что здесь происходит. Кто-нибудь еще может пролить свет на это?
Как правило, первым делом в командной строке должно быть имя * command * (ну или назначение). `$ PATH` - это переменная ..., которая не содержит допустимого имени команды. Таким образом, запуск `$ PATH` в качестве команды на самом деле не должен делать что-то особенно вменяемое.
Gordon Davisson 6 лет назад
1
2 ответа на вопрос
2
davidgo
PATH - это переменная (которая используется оболочкой, чтобы попытаться найти программы, просматривая каждый из их каталогов.)
Когда вы запускаете echo $ PATH, вы показываете содержимое, если оно есть.
Когда вы запускаете $ PATH, вы пытаетесь запустить команду, включенную в переменную. Поскольку это список каталогов, это недопустимая команда, которая выдает ошибку.
2
Kamil Maciorowski
(Я предполагаю, что вы удалили свое имя пользователя между users/и /desktop. Теперь это выглядит как несколько пробелов, но на самом деле там нет места.)
Когда вы вызываете sole $PATH, первый пробел в нем отделяет то, что bashинтерпретируется как команда, от ее первого аргумента. No such file or directoryотносится к «команде».
Первый пробел находится в Program Files, поэтому «команда» заканчивается на Program. Сбой, потому что нет такого файла.