Estoy tratando de configurar cocos2dx en Ubuntu 14.04 LTS pero después de configurar las variables ambientales (en .bashrc
) empiezo a recibir este error:
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
Y no sé qué hacer para solucionarlo.
Respuestas:
Parece que no lo hiciste correctamente.
Los errores que obtiene significan que las rutas (como
/home/john/android
) se están utilizando como nombres de variables, en lugar de como los valores asignados a ellas.NAME=value
.export NAME
.export NAME=value
.Sospecho que está intentando hacer la tercera cosa pero está usando una sintaxis incorrecta. Cinco errores comunes que podrían producir errores como lo que estás viendo son:
Usando espacios en lugar de
=
.export NAME value
Es incorrecto;value
se interpreta como el nombre de una variable posterior para exportar.(Esto sucede porque
export NAME1 NAME2
es la sintaxis correcta para exportar múltiples variables).Poner espacios alrededor
=
. En muchos lenguajes de programación, es válido y estilísticamente preferido para rellenar operadores con espacios la mayor parte del tiempo. Pero para asignar un valor a una variable en un script de shell (u otra situación en la que está emitiendo comandos de shell), esto no está permitido.NAME = value
(en unexport
comando o de otro modo) no funcionará; debes usarNAME=value
.(
export NAME = value
intenta exportar variables nombradasNAME
,=
yvalue
. Afortunadamente, esto nunca parece tener éxito silenciosamente porque intentar exportar una variable llamada=
es un error de sintaxis. Por el contrarioexport NAME= value
, parece funcionar, pero no se asignavalue
a - enNAME
cambio, asigna el vacío, cadena de longitud ceroNAME
y la exporta, y exporta la variable por separadovalue
. Ambos son errores comunes).Separar partes del valor de la variable con espacios. Las variables de entorno pueden contener espacios, pero en la práctica rara vez se usan como separadores de campo en las variables de entorno. Cuando una sola variable contiene intencionalmente múltiples rutas, generalmente
:
se usa para separarlas.No citar espacios al asignar a variables. A veces se supone que el valor de una variable de entorno contiene un espacio. Por ejemplo, podría ser el nombre de un directorio que realmente contiene un espacio. En ese caso, es necesario citar cualquier espacio.
Una forma de hacer esto es precederlos
\
. Consulte ¿Cómo puedo proteger los paréntesis pasados a un comando de CD? y No es posible borrar archivo para obtener información sobre otras maneras - los métodos presentados en las respuestas se aplican, aunque ni pregunta es específicamente acerca de la asignación de variables de entorno.Por ejemplo, aquí hay algunas formas de exportar la variable de entorno
SILLYPATH
con el valor/home/ek/silly name/bin
:A menudo, cuando una carpeta que debe usar en un shell o asignar a una variable de entorno ampliamente utilizada contiene un espacio, puede ser beneficioso renombrarlo. (Pero a veces eso es poco práctico o indeseable).
Asignación y / o exportación de una variable cuando no se tenía que hacer nada. Esto es una especie de meta-error; El problema técnico específico es a menudo uno de los anteriores, pero la solución es deshacerse de la línea ofensiva, o alguna parte de ella, en lugar de solucionarla. No elimines indiscriminadamente el código de
.bashrc
, por supuesto. Pero esexport
posible que se haya agregado accidentalmente o inadvertidamente puede tener más código del que se pretendía. Por ejemplo, suponga que quiere escribir:Eso se agregaría
.bashrc
, y luego volver a obtenerlo. Pero supongamos que en su lugar escribiste:Entonces, su
export
comando no solo exportaría un valor aumentado dePATH
, sino que también intentaría exportar variables con el nombre.
y , que no es lo que desea. Dado que contienen caracteres que están prohibidos en los nombres de las variables, recibirá un error cada vez que inicie un nuevo shell bash interactivo./home/your-username/.bashrc
Para evitar este problema, sugiero editar
.bashrc
en un editor (por ejemplonano ~/.bashrc
,gedit ~/.bashrc
) en lugar de redirigir la salida al final con>>
.Sospecho que esto puede ser suficiente información para que pueda encontrar y corregir el error en su
.bashrc
archivo. Si necesita más ayuda, por supuesto, debe publicar el contenido completo de ese archivo para su análisis. (Es solo por coincidencia que su problema es uno que se encuentra con suficiente frecuencia y con un mensaje de error lo suficientemente transparente como para hacer posible una respuesta general como esta).fuente
Asegúrate de estar ejecutando:
Más bien que:
De lo contrario, está intentando exportar el valor de la variable en lugar de la variable en sí misma, por lo que obtendrá este error.
fuente
Eliminar espacios y el signo de dólar. Por ejemplo, esto funciona de la misma manera que podría configurar un módulo de configuración de django en un servidor web a través de SSH, es decir:
fuente
He visto que esto ocurre con bastante frecuencia cuando copia algo con comas invertidas (de la web) y actualiza sus entornos o archivo bashrc.
Un buen lugar para comenzar sería escribir manualmente las comillas invertidas en el contenido pegado.
fuente