Перейти к содержимому

В Cygwin почему echo $ PATH работает, но $ PATH не работает?

1

Как видно здесь, выполнение echo $PATHдает мне мой полный PATH, но выполнение просто $PATHдает неполную версию, которая выглядит так, как будто она где-то не экранирована должным образом:

В Cygwin почему echo $ PATH работает, но $ PATH не работает?

Тем не менее, когда я просматриваю свои файлы конфигурации, единственные соответствующие строки для PATH выглядят так:

PATH=$PATH 

... .bashrcи ...

export PATH=usr/local/sbin:/usr/sbin:$PATH export PATH=/sbin:$PATH export PATH=/cygdrive/b/users/me/desktop:$PATH 

... в .bash_profile. Мне кажется, что оба правильно отформатированы, поэтому я не уверен, что здесь происходит. Кто-нибудь еще может пролить свет на это?

473 просмотра
Hashim спросил 7 лет назад
H 2 928

2 ответа

2

PATH - это переменная (которая используется оболочкой, чтобы попытаться найти программы, просматривая каждый из их каталогов.)

Когда вы запускаете echo $ PATH, вы показываете содержимое, если оно есть.

Когда вы запускаете $ PATH, вы пытаетесь запустить команду, включенную в переменную. Поскольку это список каталогов, это недопустимая команда, которая выдает ошибку.

davidgo ответил 7 лет назад
D 41 512
2
Принятый ответ

(Я предполагаю, что вы удалили свое имя пользователя между users/и /desktop. Теперь это выглядит как несколько пробелов, но на самом деле там нет места.)

Когда вы вызываете sole $PATH, первый пробел в нем отделяет то, что bashинтерпретируется как команда, от ее первого аргумента. No such file or directoryотносится к «команде».

Первый пробел находится в Program Files, поэтому «команда» заканчивается на Program. Сбой, потому что нет такого файла.

Kamil Maciorowski ответил 7 лет назад
K 22 826