export ENV_VAR="/Applications/Android Studio.app"
debería establecer la variable correctamente, pero es probable que el programa/script que utiliza la variable no la cita correctamente. Si puedes averiguar qué está usando la variable, podría ser posible arreglar el script/programa.
Mi primera conjetura sería que la variable de entorno es utilizado por un shell script que hace algo como:
somecommand $ENV_VAR/subdir/filename
El problema se produce porque el intérprete de comandos expandirá la variable y luego realizará la división de palabras, es decir, dividirá /Applications/Android Studio.app/subdir/filename
en dos argumentos: /Applications/Android
y Studio.app/subdir/filename
. Tenga en cuenta que incrustar escapes o comillas en el valor de la variable no hace nada útil, porque el shell procesa las comillas y los escapes antes de realizar sustituciones de variables. Así, si se utiliza export ENV_VAR="/Applications/Android\ Studio.app"
se dividiría en /Applications/Android\
y Studio.app/subdir/filename
si se utiliza 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 la variable, así:
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 distinto a un shell script, o un shell script que esté haciendo algo más complicado como usar la variable para construir otra variable, y posiblemente depender de la división de palabras cuando se usa esa variable. Arreglar este tipo de uso puede ser complicado.