export ENV_VAR="/Applications/Android Studio.app"
debería establecer la variable correctamente, pero es probable que el programa / script que usa la variable no lo cite correctamente. Si puede averiguar qué está usando la variable, podría ser posible corregir el script / programa.
Mi primera suposición sería que la variable de entorno es utilizada por un script de shell que hace algo como:
somecommand $ENV_VAR/subdir/filename
El problema ocurre porque el shell expandirá la variable y luego dividirá la palabra, es decir, dividirá /Applications/Android Studio.app/subdir/filename
en dos argumentos: /Applications/Android
y Studio.app/subdir/filename
. Tenga en cuenta que la incrustación de escapes o citas en el valor de la variable no hace nada útil, porque el shell procesa las citas y escapa antes realizando sustituciones de variables. Por lo tanto, si utiliza export ENV_VAR="/Applications/Android\ Studio.app"
, se dividirá en /Applications/Android\
y Studio.app/subdir/filename
; si usas export ENV_VAR="'/Applications/Android Studio.app'"
se dividiría en '/Applications/Android
y Studio.app/subdir/filename'
.
La solución es poner comillas dobles alrededor de la referencia de variable, como esta:
somecommand "$ENV_VAR/subdir/filename"
que le dice al shell que no realice la división de palabras después de la sustitución, eliminando el problema.
Tenga en cuenta que también es posible que sea algo más que un script de shell, o un script de shell que esté haciendo algo más complicado como usar la variable para construir otra variable, y posiblemente dependiendo de la división de palabras cuando se usa esa variable. Arreglar este tipo de uso puede causar problemas.