101 votes

-bash: export: `=': n'est pas un identifiant valide

Chaque fois que j'ouvre mon terminal, je reçois l'erreur ci-dessous :

Dernière connexion: dim. aug  4 17:23:05 sur ttys000
-bash: export: `=': identifiant non valide
-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin': identifiant non valide
-bash: export: `=': identifiant non valide
-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/mysql/bin': identifiant non valide

Et voici ma sortie 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"

212voto

Mat Points 104488

Vous ne pouvez pas mettre d'espaces autour du signe = lorsque vous faites :

export foo=bar

Supprimez les espaces que vous avez et vous devriez être prêt à partir.

Si vous tapez :

export foo = bar

le shell interprétera cela comme une demande d'exportation de trois noms : foo, = et bar. = n'est pas un nom de variable valide, donc la commande échoue. Le nom de la variable, le signe égal et sa valeur ne doivent pas être séparés par des espaces pour être traités comme une attribution et exportation simultanées.

12voto

Keet Sugathadasa Points 493

J'ai rencontré la même erreur et j'ai effectué quelques recherches pour découvrir qu'il pourrait y avoir différents scénarios pour cette erreur. Laissez-moi partager mes découvertes.

Scénario 1 : Il ne peut y avoir d'espaces à côté du signe =

$ export TEMP_ENV = example-value
-bash: export: `=': not a valid identifier
// c'est la réponse à la 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

Scénario 2 : L'assignation de valeur à un objet ne doit pas avoir d'espaces à côté des guillemets

$ 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

Scénario 3 : L'assignation de valeur à une liste ne doit pas avoir d'espaces entre les valeurs

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

Je partage ces informations, car j'ai été bloqué pendant quelques heures en essayant de trouver une solution de contournement. Espérons que cela aidera quelqu'un dans le besoin.

10voto

Hem Points 124

J'utilisais le tiret '-' au lieu du trait de soulignement '_' dans le nom de variable.

# échoue
$ export MY-NAME="abc"

# succès
$ export MY_NAME="abc"

3voto

Caglarr Points 31

Tout d'abord, allez dans le répertoire /home puis ouvrez le script shell invisible avec un éditeur de texte, ~/.bash_profile (macOS) ou ~/.bashrc (linux) allez en bas, vous verrez quelque chose comme ça,

export LD_LIBRARY_PATH = /usr/local/lib

changez cela comme ceci (supprimez les espaces autour du =),

export LD_LIBRARY_PATH=/usr/local/lib

cela devrait être utile.

2voto

Dorcioman Points 107

Essayez d'entourer le chemin avec des guillemets et de supprimer les espaces

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

Et n'oubliez pas de conserver le contenu précédent en le suffixant par :$PYTHONPATH (qui est la valeur de la variable)

Exécutez la commande suivante pour vérifier que tout est configuré correctement:

echo $PYTHONPATH

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X