Agregar variable de entorno a PATH

4

Soy nuevo en el "sistema ecológico" de Apple e intento configurar mis variables de entorno para el desarrollo local.

Esto es lo que tengo en mi ~/.bash_profile (simplificado por brevedad):

export PATH="$JAVA_HOME/bin:$MAVEN_HOME/bin:$DEV_CLI:$PATH"
export DEV_CLI="/path/to/cli/$BRANCH_NAME/bin"
export BRANCH_NAME=dev

Lo que quiero aquí es que se pueda acceder a mi dev cli desde cualquier punto en el terminal. Lo crucial aquí es que quiero cambiar el BRANCH_NAME en diferentes ocasiones.

Actualmente, mi solución solo funciona si hago source ~/.bash_profile en cada pestaña / ventana de terminal que uso.

Entonces, digamos que abro una nueva terminal y hago:

  1. echo $DEV_CLI - se imprimirá,
  2. echo $PATH : la ruta para el cli faltará allí
  3. source ~/.bash_profile
  4. echo $PATH : se mostrarán todas las variables definidas en la ruta (incluida la ruta cli)

Estoy ejecutando en Mac High Seirra .

¡Cualquier explicación de ayuda será muy apreciada!

    
pregunta Georgi Stoimenov 11.07.2018 - 12:14

1 respuesta

4

Sus variables están fuera de orden. No puede establecer una variable basándose en otras variables definidas después de ella.

Establezca los comandos en su ~/.bash_profile a lo siguiente:

export BRANCH_NAME=dev
export DEV_CLI="/path/to/cli/$BRANCH_NAME/bin"
export PATH="$JAVA_HOME/bin:$MAVEN_HOME/bin:$DEV_CLI:$PATH"

Por qué sucede esto ...

  1. Cuando abres un nuevo shell, lee ~/.bash_profile
  2. Establece una variable de entorno PATH con otras variables de entorno que aún no están definidas ( DEV_CLI y BRANCH_NAME )
  3. Luego se definen las variables de entorno
  4. Re-origen ~/.bash_profile y establece el PATH nuevamente, esta vez con variables definidas

Es importante tener en cuenta que esto no tiene nada que ver con el "sistema ecológico" de Apple, per se. Este es un problema de Bash, y más generalmente un problema de shell ; literalmente tendrías este problema si estuvieras en Apple, BSD, Linux, Unix e incluso Windows.

    
respondido por el Allan 11.07.2018 - 12:28

Lea otras preguntas en las etiquetas