GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle est la meilleure façon de définir une variable d'environnement dans .bashrc ?

Solution 1 :

La meilleure façon

export VAR=value

La différence

Faire

VAR=value

définit uniquement la variable pour la durée du script (.bashrc dans ce cas). Les processus enfants (le cas échéant) du script n'auront pas de VAR défini, et une fois le script terminé, VAR est parti.

export VAR=value

ajoute explicitement VAR à la liste des variables transmises aux processus enfants. Vous voulez l'essayer ? Ouvrez un shell, faites

PS1="foo > "
bash --norc

Le nouveau shell reçoit l'invite par défaut. Si à la place vous faites quelque chose comme

export PS1="foo > "
bash --norc

le nouveau shell reçoit l'invite que vous venez de définir.

Mise à jour : comme le note Ian Kelling sous les variables définies dans .bashrc persister dans le shell qui a généré .bashrc . Plus généralement chaque fois que le shell source un script (en utilisant le source scriptname command) les variables définies dans le script persistent pendant toute la durée de vie du shell.

Solution 2 :

Les deux semblent fonctionner correctement, mais l'utilisation de l'exportation garantira que la variable est disponible pour les sous-shells et les autres programmes. Pour tester cela, essayez ceci.

Ajoutez ces deux lignes à votre fichier .bashrc

TESTVAR="no export"
export MYTESTVAR="with export"

Ouvrez ensuite un nouveau shell.

Exécution de echo $TESTVAR et echo $MYTESTVAR affichera le contenu de chaque variable. Maintenant, dans ce même shell, supprimez ces deux lignes de votre fichier .bashrc et exécutez bash pour démarrer un sous-shell.

Exécution de echo $TESTVAR aura une sortie vide, mais exécutant echo $MYTESTVAR affichera "avec exportation"


Linux
  1. Comment définir une variable d'environnement sur la ligne de commande et la faire apparaître dans les commandes ?

  2. Où le terme variable d'environnement par défaut est-il défini ?

  3. Quelle est la meilleure façon d'envoyer un signal à tous les membres d'un groupe de processus ?

  4. Définir la variable d'environnement dans le script shell/l'accès dans l'application Tomcat

  5. Où est définie la variable d'environnement $HOME ?

Qu'est-ce que le Shell sous Linux ?

Comment définir une variable d'environnement dans Bash

Qu'est-ce que le sous-shell sous Linux ?

Comment définir une variable d'environnement dans GDB à l'aide de la commande shell ?

Qu'est-ce que la variable d'environnement XDG_VTNR ?

Quelle est la meilleure façon de vérifier si un volume est monté dans un script Bash ?