.bashrc no lee ruta de entorno correctamente con espacios
En mi Ubuntu 13 he editado mi .bashrc añadiendo una ruta de acceso al entorno:
export OGRE_ANDROID_ROOT=/home/piperoman/Librerias/Ogre\ Android\ SDK
Si hago eco de la variable, funciona bien, pero cuando intento utilizarla en un makefile, no lo hace. He probado con un comando cd
y este es el resultado:
- Ningún archivo o directorio 'mientras intenta obtener la versión de adb
- tools / android devuelto no puede encontrar sdkmanager.jar
- Cómo incluir correctamente la biblioteca de soporte en aplicaciones no Eclipse de Android
- Android: error GL al cambiar el tamaño: 0x506 (ignorado)
- Una buena manera de identificar la sección de código en / proc / * / maps
$ echo $OGRE_ANDROID_ROOT /home/piperoman/Librerias/Ogre Android SDK $ cd $OGRE_ANDROID_ROOT bash: cd: /home/piperoman/Librerias/Ogre: No such file or directory
¿Por qué funciona el echo
pero no puedo usar la variable correctamente con los comandos?
- Fclose funciona de forma diferente en android y linux
- Desarrollo de controladores de dispositivos Android - Punto de entrada
- Configurar dispositivo para el desarrollo (?????? sin permisos)
- android no puede encontrar un objetivo
- ¿Cómo escribir el programa de servidor nativo nativo (no aplicación) para dispositivos Android?
- Ningún paquete lib32z1, lib32ncurses5, lib32stdc ++ 6 disponible en centos
- Cualquier forma de ejecutar comandos de shell en android mediante programación?
- Cómo instalar el SDK de GMS de Google Play Services en CircleCI
Respuesta corta: Separación de palabras .
Cuando tengas esto
export OGRE_ANDROID_ROOT=/home/piperoman/Librerias/Ogre\ Android\ SDK
La variable ambiental contiene "/ home / piperoman / Librerias / Ogre Android SDK".
Si lo usa sin incluir entre comillas, Bash dividirá la cadena en palabras basadas en la variable de entorno IFS
, por defecto, tab, espacio y newlines.
Asi que
cd $OGRE_ANDROID_ROOT
es equivalente a
cd "/home/piperoman/Librerias/Ogre" "Android" "SDK"
Por lo que debe citar, es decir, "$OGRE_ANDROID_ROOT"
Tratar
cd "$OGRE_ANDROID_ROOT"
Con comillas.
Simplemente agregue la línea en .bashrc
sin la barra invertida:
export OGRE_ANDROID_ROOT="/home/piperoman/Librerias/Ogre Android SDK"
Y luego usar comillas para envolver la variable cuando quiera cd
:
cd "$OGRE_ANDROID_ROOT"
Probado con la export MYT="/home/me/test/my test/"
Esto se debe a que el nombre de la carpeta como espacios en blanco entre. En linux estos espacios en blanco normalmente no se utilizan ya que no se identifican como una sola carpeta.
Por ejemplo
$ mkdir hello\ world // will create a folder named hello world $ cd hello\ world // go in to the created folder $ pwd // display the directory name
Esto se mostrará como hello> space <world
Por lo tanto, el entorno vairable $ OGRE_ANDROID_ROOT se establece como / home / piperoman / Librerias / Ogre y no / home / piperoman / Librerias / Ogre Android SDK
Para resolver este error, cambie el nombre de la carpeta, para que se eliminen los espacios en blanco
- Base64 codificar archivo de audio y enviar como una cadena y luego decodificar la cadena
- El icono de GPS sigue parpadeando después de locationManager.removeUpdates () y estableciendo locationManager en null