Aggiungi variabile di ambiente a PERCORSO

4

Sono nuovo di Apple "eco system" e sto provando a configurare le mie variabili di ambiente per lo sviluppo locale.

Ecco cosa ho nel mio ~/.bash_profile (semplificato per brevità):

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

Quello che voglio qui è avere il mio dev cli accessibile dal qualsiasi punto nel terminale. La cosa fondamentale qui è che voglio modificare il BRANCH_NAME in diverse occasioni.

Attualmente la mia soluzione funziona solo se faccio source ~/.bash_profile in ogni scheda / finestra del terminale che uso.

Quindi diciamo che apro un nuovo terminale e faccio:

  1. echo $DEV_CLI - verrà stampato,
  2. echo $PATH - il percorso per il cli mancherà lì
  3. source ~/.bash_profile
  4. echo $PATH - verranno mostrate tutte le variabili impostate nel percorso (percorso cli incluso)

Sono in esecuzione su Mac High Seirra .

Qualsiasi spiegazione di aiuto sarà profondamente apprezzata!

    
posta Georgi Stoimenov 11.07.2018 - 12:14
fonte

1 risposta

4

Le tue variabili sono fuori uso. Non puoi impostare una variabile in base ad altre variabili definite dopo .

Imposta i comandi in ~/.bash_profile come segue:

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

Perché sta succedendo ...

  1. Quando apri una nuova shell, legge ~/.bash_profile
  2. Imposta una variabile di ambiente PATH con altre variabili di ambiente che non sono ancora definite ( DEV_CLI e BRANCH_NAME )
  3. Le variabili di ambiente vengono quindi definite
  4. re-source ~/.bash_profile e imposta di nuovo PATH , questa volta con le variabili definite

È importante notare che questo non ha nulla a che fare con il "sistema eco" Apple di per sé. Questo è un problema di Bash e più in generale un problema di shell ; avresti letteralmente questo problema se tu fossi su Apple, BSD, Linux, Unix e persino Windows.

    
risposta data 11.07.2018 - 12:28
fonte

Leggi altre domande sui tag