75

每次打开终端时,我都会收到以下错误:

Last login: Sun Aug  4 17:23:05 on ttys000
-bash: export: `=': not a valid identifier
-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin': not a valid identifier
-bash: export: `=': not a valid identifier
-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin': not a valid identifier

这是我的export输出:

Calvin:~ sunkehappy$ export
declare -x Apple_PubSub_Socket_Render="/tmp/launch-4lEZNa/Render"
declare -x Apple_Ubiquity_Message="/tmp/launch-ukGAv5/Apple_Ubiquity_Message"
declare -x COMMAND_MODE="unix2003"
declare -x HOME="/Users/sunkehappy"
declare -x LANG="zh_CN.UTF-8"
declare -x LOGNAME="sunkehappy"
declare -x OLDPWD
declare -x PATH="/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"
declare -x PWD="/Users/sunkehappy"
declare -x SECURITYSESSIONID="186a4"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_AUTH_SOCK="/tmp/launch-YAEryC/Listeners"
declare -x TERM="xterm-256color"
declare -x TERM_PROGRAM="Apple_Terminal"
declare -x TERM_PROGRAM_VERSION="309"
declare -x TERM_SESSION_ID="B134A404-D87F-4BB9-8A08-55F8CE923339"
declare -x TMPDIR="/var/folders/kt/pfw99tps22gg2019vz8k1zcm0000gn/T/"
declare -x USER="sunkehappy"
declare -x __CF_USER_TEXT_ENCODING="0x1F5:25:52"
4

5 回答 5

175

=当您这样做时,您不能在标志周围放置空格:

export foo=bar

删除您拥有的空间,您应该一切顺利。

如果您键入:

export foo = bar

shell 会将其解释为导出三个名称的请求foo=bar. =不是有效的变量名,因此命令失败。变量名称、等号和它的值不能用空格分隔,以便将它们作为同时赋值和导出处理。

于 2013-08-04T11:24:41.333 回答
5

我遇到了同样的错误并做了一些研究,结果发现这个错误可能有不同的情况。让我分享一下我的发现。

=场景1:(等号)旁边不能有空格

$ export TEMP_ENV = example-value
-bash: export: `=': not a valid identifier
// this is the answer to the question

$ export TEMP_ENV =example-value
-bash: export: `=example-value': not a valid identifier

$ export TEMP_ENV= example-value
-bash: export: `example-value': not a valid identifier

场景 2:对象值赋值不应有引号之外的空格

$ export TEMP_ENV={ "key" : "json example" } 
-bash: export: `:': not a valid identifier
-bash: export: `json example': not a valid identifier
-bash: export: `}': not a valid identifier

场景 3:列表值赋值不应在值之间有空格

$ export TEMP_ENV=[1,2 ,3 ]
-bash: export: `,3': not a valid identifier
-bash: export: `]': not a valid identifier

我正在分享这些,因为我被困了几个小时试图找出解决方法。希望它会帮助有需要的人。

于 2020-05-20T18:20:06.317 回答
2

首先去 /home 目录然后用一些文本编辑器打开不可见的 shell 脚本,~/.bash_profile (macOS) or ~/.bashrc (linux)到底部,你会看到这样的东西,

导出 LD_LIBRARY_PATH = /usr/local/lib

像这样改变这个(删除周围的空白点=),

导出 LD_LIBRARY_PATH=/usr/local/lib

它应该很有用。

于 2020-11-24T11:35:53.000 回答
1

尝试用引号包围路径,并删除空格

export PYTHONPATH="/home/user/my_project":$PYTHONPATH

并且不要忘记保留以前的内容后缀:$PYTHONPATH(这是变量的值)

执行以下命令检查所有配置是否正确:

echo $PYTHONPATH
于 2020-05-13T08:46:40.857 回答
0

我遇到了同样的问题,并从您的评论中弄清楚了,但我想我会添加导致错误发生的原因(对于其他初学者)。

我使用终端中的 open 命令打开并编辑了 .bash_profile,该命令在文本编辑器中打开了它。我在 .bash_profile 中输入了一个附加内容,它使用了不正确的引号字符。我在 Atom 中打开了 .bash_profile 并修复了错误。我还将文件与 Atom 相关联以供将来编辑。

于 2017-11-01T19:35:49.567 回答