"Недійсний ідентифікатор", коли я "експортую $ PATH"


37

Коли я бігаю export $PATHв bash, я отримую помилку not a valid identifier. Чому?


8
У bash та інших оболонках $це "value of". Ви експортуєте змінну PATH, не отримуючи доступу до її значення, значить, export PATHнемає $.
Жил "ТАК - перестань бути злим"

Більш поширене подібне питання: askubuntu.com/questions/529919/…
Вадим,

Відповіді:


40

Запуск export $PATHбуде намагатися експортувати змінну з ім'ям , рівним значенню з $PATH(після слів розщеплення ). Тобто, це рівнозначно написанню чогось подібного export /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin. А оскільки /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binце неправдиве ім'я змінної, воно не працює. Те, що ви хочете зробити - це export PATH.

export(еквівалентно declare -x) в Bash просто робить змінну доступною для підрозділів.

Щоб друкувати значення змінної безпечно та читано, використовуйте printf %q "$PATH".


В основному я створив деякі змінні, JAVA_HOME, MAVEN_HOME і хочу переконатися, що bash їх правильно встановив, тому я експортую $ PATH, щоб перевірити, чи правильно встановлені змінні шляху до змінної PATH
ThaSaleni

1
Це залежно від оболонки, а не від ОС. Я був би здивований, якби exportколи-небудь працював так у Bash.
l0b0

Крім того, змінна PATH вже експортується і її не потрібно експортувати знову.
Kusalananda

19

Наступна команда export $PATH=somePathбуде повертати not a valid identifierі це через $до PATHзмінної.

рішення:

export PATH=somePath


0

Ви повинні використовувати його таким чином:

export PATH=$PATH:/something/bin

Замість:

export $PATH=$PATH:/something/bin

просто зніміть $знак з лівої сторони.


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