Я пытаюсь настроить cocos2dx в Ubuntu 14.04 LTS, но после установки переменных среды (в .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
) используются как имена переменных, а не как присвоенные им значения .
] ИМЯ = значение
. ИМЯ экспорта
. export NAME = value
. Я подозреваю, что вы пытаетесь сделать третье действие, но используете неправильный синтаксис. Пять распространенных ошибок, которые могут привести к ошибкам, подобным тому, что вы видите:
Использование пробелов вместо =
. значение экспорта NAME
неверно; значение
затем интерпретируется как имя следующей переменной для экспорта.
(Это происходит потому, что экспорт ИМЯ1 ИМЯ2
является правильным синтаксисом для экспорта нескольких переменных.)
Пробелы вокруг =
. Во многих языках программирования допустимо и стилистически предпочтительно дополнять операторы пробелами большую часть времени. Но присвоение значения переменной в сценарии оболочки (или в другой ситуации, когда вы вводите команды оболочки), это запрещено. NAME = значение
(в команде export
или иначе) не будет работать; необходимо использовать NAME = значение
.
( export NAME = value
пытается экспортировать переменные с именем NAME
, =
и value
. К счастью, это никогда не приводит к успеху в автоматическом режиме, потому что попытка экспорта переменной с именем =
является синтаксической ошибкой. В отличие от export NAME = value
будет работать, но не присваивает значение
для ИМЯ
- вместо этого присваивает пустой, ноль-длина строки в ИМЯ
и экспортирует ее, а также отдельно экспортирует значение переменной
. Оба являются распространенными ошибками.)
Разделение частей значения переменной пробелами. Переменные среды могут содержать пробелы, но на практике они редко используются в качестве разделителей полей в переменных среды. Когда одна переменная намеренно содержит несколько путей, обычно используется :
для их разделения.
Отсутствие кавычек при присвоении переменных. Иногда предполагается, что значение переменной окружения содержит пробел. Например, это может быть имя каталога, действительно содержащего пробел. В этом случае необходимо заключать в кавычки любые пробелы.
Один из способов сделать это - поставить перед ними \
. См. Как я могу защитить круглые скобки, переданные в команду cd? и Невозможно удалить файл для получения информации о других способах - методы, представленные в ответах, применимы, хотя ни один из вопросов не является конкретным о назначении переменных среды.
Например, вот несколько способов экспортировать переменную среды SILLYPATH
со значением / home / ek / silly name / bin
:
экспорт SILLYPATH = / home / ek / silly \ name / bin
экспорт SILLYPATH = '/ home / ek / глупое имя / bin'
экспорт SILLYPATH = "/ home / ek / глупое имя / bin"
Часто, когда папка, которую вы должны использовать в оболочке или назначать широко используемой переменной среды, содержит пробел, ее можно переименовать. (Но иногда это непрактично или нежелательно.)
Назначение и / или экспорт переменной, когда вообще ничего не нужно делать. Это своего рода мета-ошибка; конкретная техническая проблема часто является одной из вышеперечисленных, но решение состоит в том, чтобы избавиться от проблемной строки или какой-либо ее части, а не исправлять ее. Разумеется, не удаляйте код из .bashrc
без разбора. Но экспорт
мог быть добавлен случайно, или может непреднамеренно содержать больше кода, чем предполагалось. Например, предположим, что вы хотели написать:
echo 'export PATH = ~ / some.bin: "$ PATH"' >> ~ / .bashrc; . ~ / .bashrc
Это должно быть добавлено к .bashrc
, а затем повторно загружено. Но предположим, что вместо этого вы написали:
echo 'export PATH = ~ / some.bin: "$ PATH". ~ / .bashrc '>> ~ / .bashrc # НЕПРАВИЛЬНО!
Тогда ваша команда export
не просто экспортирует увеличенное значение PATH
, но также попытается экспортировать переменные названный .
и / home / ваше-имя пользователя / .bashrc
, что вам не нужно. Поскольку они содержат символы, запрещенные в именах переменных, вы будете получать сообщение об ошибке каждый раз при запуске новой интерактивной оболочки bash.
Чтобы избежать этой проблемы, я предлагаю отредактировать .bashrc
в редакторе ( например, nano ~ / .bashrc
, gedit ~ / .bashrc
) вместо перенаправления вывода в конец с помощью >>
.
Я подозреваю этой информации может быть достаточно для того, чтобы найти и исправить ошибку в вашем файле .bashrc
. Если вам нужна дополнительная помощь, вы, конечно же, должны опубликовать полное содержимое этого файла для анализа. (Это только совпадение, что ваша проблема оказалась достаточно часто встречающейся и с достаточно прозрачным сообщением об ошибке, чтобы дать общий ответ, подобный этому.)
Убедитесь, что вы используете:
export ENV_VARIABLE
Вместо:
export $ENV_VARIABLE
В противном случае , вы пытаетесь экспортировать значение переменной, а не саму переменную, поэтому вы получите эту ошибку.
Удалите пробелы и знак доллара . Например, это работает точно так же, как вы можете установить модуль настроек django на веб-сервере через SSH, то есть:
export DJANGO_SETTINGS_MODULE=myapp.settings
Я видел это довольно часто, когда вы копируете что-то с кавычками (из Интернета) и обновляете среду или файл bashrc.
Хорошим местом для начала было бы просто вручную ввести кавычки в вставленное содержание.