«Неверный идентификатор», когда я делаю «экспортировать $ PATH»


37

Когда я запускаю export $PATHв bash, я получаю ошибку not a valid identifier. Зачем?


8
В Баш и других оболочках $есть «ценность». Вы экспортируете переменную 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 уже экспортирована и не нуждается в повторном экспорте.
Кусалананда

19

Следующая команда export $PATH=somePathвернется, not a valid identifierи это из- $за PATHпеременной before .

решение:

export PATH=somePath



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