web-dev-qa-db-fra.com

"Export" n'est utile que pour les effets temporaires?

Je sais que les variables shell ne sont pas disponibles pour les shells parents ou enfants et que les environnements shell sont disponibles pour les shells.

Quand je veux ajouter de manière permanente le répertoire courant à PATH, je peux le faire de deux manières:

1-manière normale:

 [sinoosh@localhost ~]$ vi ~/.bash_profile 

enter image description here

2-sans commande d'exportation

enter image description here

Et puis déconnecter je vois le même résultat que la manière normale

enter image description here

il n'y a pas de différence entre "1" et "2". Pouvons-nous dire que la commande export est utile car nous ne voulons pas ajouter de façon permanente aux variables d'environnement?

Qu'est-ce qu'il se passe ici?

3
Sinoosh

La déclaration export (ou declare -x) fait la différence entre un simple variable shell et un variable d'environnement.

Puisque PATH fait presque certainement déjà partie de votre environnement - avoir été défini dans /etc/environment par exemple - le marquer pour l'exportation une seconde fois n'est pas strictement nécessaire[1] (bien que cela ne fasse pas de mal - et que l'intention soit claire).


1 au moins je pense que c'est le cas - j'aimerais trouver une référence primaire

6
steeldriver