J'essaie d'installer cocos2dx dans Ubuntu 14.04 LTS mais après avoir défini les variables d'environnement (dans .bashrc
), je commence à obtenir cette erreur:
bash: export: dev/cocos2d-x-3.2/tools/cocos2d-console/bin': not a valid identifier
bash: export:/home/john/Android': not a valid identifier
bash: export: dev/Android-ndk-r10b': not a valid identifier
bash: export:dev/adt-bundle-linux-x86_64-20140702/sdk': not a valid identifier
Et je ne sais pas quoi faire pour le réparer.
mais après avoir défini les variables environnementales
On dirait que vous ne l'avez pas fait correctement.
Les erreurs que vous obtenez signifient que les chemins (comme /home/john/Android
) sont utilisés comme noms de variables, plutôt que comme valeurs qui leur sont attribuées.
NAME=value
.export NAME
.export NAME=value
.Je suppose que vous essayez de faire la troisième chose mais en utilisant une syntaxe incorrecte. Voici quatre erreurs courantes susceptibles de produire des erreurs telles que celles que vous constatez:
L'utilisation d'espaces au lieu de =
.export NAME value
est incorrecte; value
est ensuite interprété comme le nom d'une variable ultérieure à exporter.
(Cela est dû au fait que export NAME1 NAME2
est la syntaxe correcte pour exporter plusieurs variables.)
Espacement entre les espaces =
. Dans de nombreux langages de programmation, il est à la fois valide et stylistiquement préférable que les opérateurs de pad avec des espaces la plupart du temps. Toutefois, pour affecter une valeur à une variable dans un script Shell (ou dans une autre situation dans laquelle vous émettez des commandes Shell), cette opération n'est pas autorisée. NAME = value
(dans une commande export
ou autrement) ne fonctionnera pas; vous devez utiliser NAME=value
.
(export NAME = value
tente d'exporter des variables nommées NAME
, =
et value
. Heureusement, cela ne semble jamais réussir en silence, car tenter d'exporter une variable appelée =
est une erreur de syntaxe. Par contraste, export NAME= value
semblera fonctionner, mais n'affectera pas value
à NAME
- Au lieu de cela, il affecte la chaîne vide de longueur nulle à NAME
et l'exporte, puis exporte séparément la variable value
. Ces deux erreurs sont courantes.)
Séparer les espaces de la valeur de la variable. Les variables d'environnement can peuvent contenir des espaces, mais ils sont rarement utilisés comme séparateurs de champs dans les variables d'environnement. Lorsqu'une seule variable contient intentionnellement plusieurs chemins, :
est généralement utilisé pour les séparer.
Ne pas citer d'espaces lors de l'attribution de variables. Parfois, la valeur d'une variable d'environnement est supposée contenir un espace. Par exemple, il peut s'agir du nom d'un répertoire contenant réellement un espace. Dans ce cas, il est nécessaire de citer des espaces.
Une façon de faire est de les précéder de \
. Voir Comment protéger les parenthèses passées à une commande cd? et Impossible de supprimer le fichier pour plus d'informations sur les autres méthodes - les méthodes présentées dans les réponses s'appliquent, même si aucune question concerne spécifiquement l’affectation à des variables d’environnement.
Par exemple, voici quelques façons d’exporter la variable d’environnement SILLYPATH
avec la valeur /home/ek/silly name/bin
:
export SILLYPATH=/home/ek/silly\ name/bin
export SILLYPATH='/home/ek/silly name/bin'
export SILLYPATH="/home/ek/silly name/bin"
Souvent, lorsqu'un dossier que vous devez utiliser dans un shell ou affecter à une variable d'environnement largement utilisée contient un espace, il peut être avantageux de le renommer. (Mais parfois c'est peu pratique ou indésirable.)
Je soupçonne que cela peut être suffisant pour que vous trouviez et corrigiez le bogue dans votre fichier .bashrc
. Si vous avez besoin d’une aide supplémentaire, vous devez bien sûr publier le contenu complet de ce fichier pour analyse. (Ce n'est que par coïncidence que votre problème s'est avéré être un problème suffisamment rencontré fréquemment et avec un message d'erreur suffisamment transparent pour rendre possible une réponse générale comme celle-ci.)
Assurez-vous que vous utilisez:
export ENV_VARIABLE
Plutôt que:
export $ENV_VARIABLE
Sinon, vous essayez d'exporter la valeur de la variable plutôt que la variable elle-même, vous obtiendrez donc cette erreur.
Éliminer les espaceset le signe dollar. Par exemple, cela fonctionne exactement de la même manière que vous pouvez définir un module de paramètres Django sur un serveur Web via SSH, à savoir:
export Django_SETTINGS_MODULE=myapp.settings