web-dev-qa-db-fra.com

Comment définir une variable d'environnement dans cygwin?

Sous Linux, j'irais:

setenv -p MYVAR "somevalue"

Mais cela ne semble pas fonctionner avec cygwin.

19
BeeBand

Par défaut, Cygwin exécute Bourne Shell ou Bash , donc la commande pour définir une variable est différente. Voici le code dont vous avez besoin:

export MYVAR="somevalue"

La partie export indique au shell qu'il s'agit d'une variable d'environnement au lieu d'une variable locale.

Si vous tapez ls -a dans votre répertoire personnel, vous devriez voir tout ou partie des fichiers suivants:

.bashrc
.bash_profile
.profile

.bash_profile est exécuté pour les shells de connexion et .bashrc est exécuté pour les shells interactifs sans connexion. Pour vous assurer le plus simplement que votre variable d'environnement est toujours définie, ouvrez .bash_profile et ajoutez le texte:

export MYVAR="somevalue"

Votre Shell puis exécutez .bash_profile à chaque démarrage et il exécutera cette commande. Vous aurez alors la variable MYVAR accessible tout le temps. Si vous n'aviez pas export la variable, elle ne serait accessible que dans votre .bash_profile fichier.

Vous pouvez vérifier que cette variable est définie en imprimant sa valeur sur votre Shell:

echo $MYVAR

Vous pouvez supprimer (désactiver) la variable avec:

unset $MYVAR

Quelques mots sur les fichiers de configuration Shell

En passant, concernant .bashrc contre .bash_profile contre. .profile, voir ces réponses:

Pour simplifier la configuration, je vous recommande de vous procurer votre .bashrc fichier de .bash_profile. Ajoutez ceci à .bash_profile:

if [ -f ${HOME}/.bashrc ]; then
   source ${HOME}/.bashrc
fi

Cela chargera .bashrc de .bash_profile.

Si vous faites cela, vous pouvez à la place mettre la ligne suivante dans .bashrc, si vous le souhaitez:

export MYVAR="somevalue"
27
dbmikus

La meilleure façon de configurer les variables d'environnement dans cygwin est de créer un profil bash et d'exécuter ce profil chaque fois que vous vous connectez et exécutez le shell.

Dans mon fichier .bash_profile, voici le paramètre que j'ai

Java_HOME = C:/Program Files/Java/jdk1.7.0_51
export Java_HOME
export PATH=$PATH:$Java_HOME/bin

Une fois que vous exécutez bash, consultez echo $ Java_HOME et vous devriez voir le chemin en sortie.

2
vsingh