Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

-bash: export: `=': not a valid identifier

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" 
like image 875
sunkehappy Avatar asked Aug 04 '13 11:08

sunkehappy


2 Answers

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.

like image 148
Mat Avatar answered Sep 23 '22 05:09

Mat


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.

like image 24
Keet Sugathadasa Avatar answered Sep 22 '22 05:09

Keet Sugathadasa