-bash: Export: `=': Not A Valid Identifier


Answer :

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.


Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?