Ajouter une variable d'environnement à PATH

4

Je suis nouveau dans le "système écologique" d’Apple et j’essaie de configurer les variables de mon environnement pour le développement local.

Voici ce que j'ai dans mon ~/.bash_profile(simplifié pour la brièveté):

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

Ce que je veux ici, c’est que mon cli de développement soit accessible de n’importe quel point du terminal. La chose cruciale ici est que je veux changer le BRANCH_NAMEà différentes occasions.

Actuellement, ma solution ne fonctionne que si je le fais source ~/.bash_profiledans chaque onglet / fenêtre de terminal que j'utilise.

Alors disons que j'ouvre un nouveau terminal et fais:

  1. echo $DEV_CLI - il sera imprimé,
  2. echo $PATH - le chemin pour la cli y manquera
  3. source ~/.bash_profile
  4. echo $PATH - toutes les variables définies dans le chemin seront affichées (chemin cli inclus)

Je cours sur Mac High Seirra .

Toute explication d'aide sera profondément appréciée!

Georgi Stoimenov
la source
Qu'est-ce que "cli. Path"? Vous ne voulez pas de variable PATH vide à aucun moment dans votre terminal. session.
fd0
Je ne vois pas ce que vous voulez dire, quelle variable est vide, selon vous? Notez que les valeurs ici sont des fictions.
Georgi Stoimenov

Réponses:

4

Vos variables sont en panne. Vous ne pouvez pas définir une variable basée sur d'autres variables définies après .

Définissez les commandes dans votre ~/.bash_profilecomme suit:

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

Pourquoi cela se passe ...

  1. Lorsque vous ouvrez un nouveau shell, il lit ~/.bash_profile
  2. Il définit une PATHvariable d'environnement avec d'autres variables d'environnement qui ne sont pas encore définies ( DEV_CLIet BRANCH_NAME)
  3. Les variables d'environnement sont alors définies
  4. Vous re-source ~/.bash_profileet redéfinit la PATH, cette fois avec des variables définies

Il est important de noter que cela n'a rien à voir avec le "système écologique" d'Apple en soi. C'est un problème Bash, et plus généralement un problème de shell ; vous auriez littéralement ce problème si vous étiez sur Apple, BSD, Linux, Unix et même Windows.

Allan
la source
1
Merci pour votre clarification - dans l'exemple, j'ai inversé par erreur les positions de BRANCH_NAMEet DEV_CLImais la PATHvariable était quand même au-dessus d'eux.
Georgi Stoimenov