Я пытаюсь настроить cocos2dx в Ubuntu 14.04 LTS, но после установки переменных среды (in .bashrc
) я получаю эту ошибку:
bash: export: dev/cocos2d-x-3.2/tools/cocos2d-console/bin': not a valid identifier
bash: export:/home/john/android': not a valid identifier
bash: export: dev/android-ndk-r10b': not a valid identifier
bash: export:dev/adt-bundle-linux-x86_64-20140702/sdk': not a valid identifier
И я не знаю, что делать, чтобы это исправить.
Ответы:
Похоже, вы сделали это неправильно.
Ошибки вы получаете среднее , что путь (как
/home/john/android
) используются в качестве имен переменных, а не в качестве значений , присвоенных им.NAME=value
.export NAME
.export NAME=value
.Я подозреваю, что вы пытаетесь сделать что-то третье, но используете неправильный синтаксис. Пять распространенных ошибок, которые могут привести к таким ошибкам, как то, что вы видите:
Использование пробелов вместо
=
.export NAME value
это неверно;value
затем интерпретируется как имя последующей переменной для экспорта.(Это происходит потому , что
export NAME1 NAME2
это правильный синтаксис для экспорта нескольких переменных.)Расставлять места вокруг
=
. Во многих языках программирования допустимо и стилистически предпочитать заполнять операторы пробелами в большинстве случаев. Но назначать значение переменной в сценарии оболочки (или в другой ситуации, когда вы вводите команды оболочки), это не разрешено.NAME = value
(вexport
команде или иным образом) не будет работать; Вы должны использоватьNAME=value
.(
export NAME = value
Пытается экспортировать переменные с именемNAME
,=
иvalue
. К счастью , это никогда не появляется , чтобы добиться успеха молча , потому что попытки экспортировать переменную=
является синтаксической ошибкой. В отличиеexport NAME= value
появится на работу, но не назначаетvalue
наNAME
--instead, он присваивает пустой, Строка нулевой длины вNAME
и экспортирует ее, а также отдельно экспортирует переменнуюvalue
. Обе распространенные ошибки.)Разделение частей значения переменной пробелами. Переменные среды могут содержать пробелы, но на практике они редко используются в качестве разделителей полей в переменных среды. Когда одна переменная намеренно содержит несколько путей, обычно
:
используется для их разделения.Не заключать в кавычки при назначении переменных. Иногда значение переменной среды должно содержать пробел. Например, это может быть имя каталога, который действительно содержит пробел. В этом случае необходимо указать любые пробелы.
Один из способов сделать это состоит в том, чтобы предшествовать им
\
. См. Как защитить скобки, передаваемые команде cd? и Невозможно удалить файл для получения информации о других способах - применяются методы, представленные в ответах, даже если ни один из вопросов не касается конкретно назначения переменных среды.Например, вот несколько способов экспортировать переменную среды
SILLYPATH
со значением/home/ek/silly name/bin
:Часто, когда папка, которую необходимо использовать в оболочке или назначить широко используемой переменной среды, содержит пробел, может быть полезно переименование. (Но иногда это нецелесообразно или нежелательно.)
Назначение и / или экспорт переменной, когда ничего не нужно было делать вообще. Это своего рода мета-ошибка; конкретная техническая проблема часто является одной из вышеперечисленных, но решение состоит в том, чтобы избавиться от неисправной линии или какой-либо ее части, а не исправить ее. Не удаляйте без разбора код
.bashrc
, конечно. Но онexport
может быть случайно добавлен или может случайно содержать больше кода, чем предполагалось. Например, предположим, что вы хотели написать:Что бы добавить
.bashrc
, а затем повторно получить его. Но предположим, что вы вместо этого написали:Тогда ваша
export
команда не только экспортирует увеличенное значениеPATH
, но и попытается экспортировать переменные с именами.
и , а это не то, что вам нужно. Так как они содержат символы, которые запрещены в именах переменных, вы получите сообщение об ошибке при каждом запуске новой интерактивной оболочки bash./home/your-username/.bashrc
Чтобы избежать этой проблемы, я предлагаю редактирование
.bashrc
в редакторе (например,nano ~/.bashrc
,gedit ~/.bashrc
) , а не перенаправлять вывод в конце его с>>
.Я подозреваю, что это может быть достаточно информации для вас, чтобы найти и исправить ошибку в вашем
.bashrc
файле. Если вам нужна дополнительная помощь, вы, конечно, должны опубликовать все содержимое этого файла для анализа. (Только по стечению обстоятельств ваша проблема оказалась достаточно часто встречающейся и с достаточно прозрачным сообщением об ошибке, чтобы сделать возможным общий ответ, подобный этому.)источник
Убедитесь, что вы работаете:
Скорее, чем:
В противном случае вы пытаетесь экспортировать значение переменной, а не саму переменную, поэтому вы получите эту ошибку.
источник
Устранить пробелы и знак доллара. Например, это работает точно так же, как вы можете установить модуль настроек django на веб-сервере через SSH, то есть:
источник
Я видел, как это происходит довольно часто, когда вы копируете что-то с кавычками (из Интернета) и обновляете свою среду или файл bashrc.
Хорошее место для начала было бы просто вручную ввести кавычки в вставленном контенте.
источник