每次打开终端我都会收到以下错误:
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"
答案 0 :(得分:80)
执行此操作时,不能在=
符号周围添加空格:
export foo=bar
删除你拥有的空间,你应该好好去。
如果输入:
export foo = bar
shell会将其解释为导出三个名称的请求:foo
,=
和bar
。 =
不是有效的变量名,因此命令失败。变量名称,等号和它的值不能用空格分隔,以便将它们作为同时分配和导出进行处理。
答案 1 :(得分:3)
我遇到了同样的错误,并做了一些研究,只发现该错误可能存在不同的情况。让我分享我的发现。
方案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
我正在分享这些内容,因为我被困了两个小时试图找出解决方法。希望它将对有需要的人有所帮助。
答案 2 :(得分:1)
首先进入/ home目录,然后使用一些文本编辑器打开不可见的shell脚本,~/.bash_profile (macOS) or ~/.bashrc (linux)
进入底部,您将看到类似的内容,
导出LD_LIBRARY_PATH = / usr / local / lib
这样更改(删除=
周围的空白点),
导出LD_LIBRARY_PATH = / usr / local / lib
它应该很有用。
答案 3 :(得分:0)
我遇到了同样的问题并且从你的评论中发现了它,但我想我会添加导致错误发生的原因(对于其他初学者)。
我使用终端中的open命令打开并编辑了.bash_profile,它在文本编辑器中打开了它。我输入了.bash_profile的附加内容,它使用了不正确的引号字符。我在Atom中打开了.bash_profile并修复了错误。我还将该文件与Atom相关联以供将来编辑。
答案 4 :(得分:0)
尝试在路径两边加上引号,并删除空格
export PYTHONPATH="/home/user/my_project":$PYTHONPATH
也不要忘记保留以前的内容,后缀以:$ PYTHONPATH (变量的值)
执行以下命令以检查所有配置是否正确:
echo $PYTHONPATH