0 votos

¿Cómo puedo establecer una variable de entorno específica del usuario que incluya un carácter de espacio?

Me gustaría añadir una variable de entorno para una cuenta específica donde la variable tiene un espacio. Parece que la edición de .bash_profile como a continuación no funciona:

export ENV_VAR=“/Applications/Android Studio.app“

y tampoco lo hace:

export ENV_VAR=“/Applications/Android\ Studio.app“

Tengo que conformarme con cambiar el nombre del paquete de aplicaciones, lo que no es preferible.

1voto

Nate Puntos 220

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.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X