Every time I open my terminal I get the error below:
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
And here is my export
output:
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"
You cannot put spaces around the =
sign when you do:
export foo=bar
Remove the spaces you have and you should be good to go.
If you type:
export foo = bar
the shell will interpret that as a request to export three names: foo
, =
and bar
. =
isn't a valid variable name, so the command fails. The variable name, equals sign and it's value must not be separated by spaces for them to be processed as a simultaneous assignment and export.
I faced the same error and did some research to only see that there could be different scenarios to this error. Let me share my findings.
Scenario 1: There cannot be spaces beside the =
(equals) sign
$ 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
Scenario 2: Object value assignment should not have spaces besides quotes
$ 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
Scenario 3: List value assignment should not have spaces between values
$ export TEMP_ENV=[1,2 ,3 ] -bash: export: `,3': not a valid identifier -bash: export: `]': not a valid identifier
I'm sharing these, because I was stuck for a couple of hours trying to figure out a workaround. Hopefully, it will help someone in need.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With