Car*_*pos 13 bash scripts android environment-variables adt
我正在尝试在 Ubuntu 14.04 LTS 中设置 cocos2dx,但在设置环境变量(在 中.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
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做才能解决它。
Eli*_*gan 18
但是在设置环境变量之后
看起来您没有正确执行此操作。
您收到的错误意味着路径(如/home/john/android
)被用作变量的名称,而不是分配给它们的值。
NAME=value
.export NAME
.export NAME=value
.我怀疑您正在尝试做第三件事,但使用了错误的语法。可能会产生您所看到的错误的五个常见错误是:
使用空格代替=
. export NAME value
是不正确的; value
然后被解释为要导出的后续变量的名称。
(发生这种情况是因为导出多个变量的语法export NAME1 NAME2
是正确的。)
在周围放置空间=
。在许多编程语言中,大多数时候用空格填充运算符既有效又在风格上更受欢迎。但是要为 shell 脚本中的变量赋值(或在您发出 shell 命令的其他情况下),这是不允许的。NAME = value
(在export
命令中或以其他方式)将不起作用;你必须使用NAME=value
.
(export NAME = value
尝试导出名为NAME
, =
, 和 的变量value
。幸运的是,这似乎永远不会成功,因为尝试导出名为的变量=
是语法错误。相比之下,它export NAME= value
似乎可以工作,但不会分配value
给NAME
-- 而是分配空的,将零长度字符串NAME
导出到并导出,并单独导出变量value
。两者都是常见错误。)
用空格分隔变量值的各个部分。环境变量可以包含空格,但实际上它们很少用作环境变量中的字段分隔符。当单个变量有意包含多个路径时,通常:
用于将它们分开。
分配给变量时不引用空格。有时环境变量的值应该包含一个空格。例如,它可能是真正包含空格的目录的名称。在这种情况下,有必要引用任何空格。
一种方法是在它们之前加上\
. 请参阅如何保护传递给 cd 命令的括号?并且无法删除文件以获取有关其他方式的信息-答案中提供的方法适用,即使这两个问题都不是专门关于分配给环境变量的。
例如,这里有几种方法可以导出SILLYPATH
值为的环境变量/home/ek/silly name/bin
:
export SILLYPATH=/home/ek/silly\ name/bin
Run Code Online (Sandbox Code Playgroud)
export SILLYPATH='/home/ek/silly name/bin'
Run Code Online (Sandbox Code Playgroud)
export SILLYPATH="/home/ek/silly name/bin"
Run Code Online (Sandbox Code Playgroud)
通常,当您必须在 shell 中使用或分配给广泛使用的环境变量的文件夹包含空格时,重命名可能会使其受益。(但有时这是不切实际或不可取的。)
当根本不需要做任何事情时分配和/或导出变量。这是一个元错误。具体的技术问题通常是上述问题之一,但解决方案是摆脱违规行或其中的一部分,而不是修复它。.bashrc
当然,不要不加选择地从 中删除代码。但是一个export
可能是意外添加的,或者可能无意中包含了比预期更多的代码。例如,假设您打算编写:
echo 'export PATH=~/some.bin:"$PATH"' >>~/.bashrc; . ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
这将附加到.bashrc
,然后重新获取它。但是假设您改为写道:
echo 'export PATH=~/some.bin:"$PATH" . ~/.bashrc' >>~/.bashrc # WRONG!
Run Code Online (Sandbox Code Playgroud)
然后,您的export
命令不仅会导出 的增强值PATH
,还会尝试导出名为.
and 的变量,这不是您想要的。由于它们包含变量名中禁止使用的字符,因此每次启动新的交互式 bash shell 时都会出现错误。/home/your-username/.bashrc
为了避免这个问题,我建议.bashrc
在编辑器中进行编辑(例如nano ~/.bashrc
, gedit ~/.bashrc
),而不是将输出重定向到它的末尾>>
。
我怀疑这可能足以让您找到并修复.bashrc
文件中的错误。如果您需要进一步的帮助,您当然应该发布该文件的完整内容以供分析。(巧合的是,您的问题恰好是一个经常遇到的问题,并且带有足够透明的错误消息,使这样的一般答案成为可能。)
小智 9
确保您正在运行:
export ENV_VARIABLE
Run Code Online (Sandbox Code Playgroud)
而不是:
export $ENV_VARIABLE
Run Code Online (Sandbox Code Playgroud)
否则,您正在尝试导出变量的值而不是变量本身,因此您将收到此错误。