Recherche de site Web

Différence entre la définition de variables Bash avec et sans exportation


J'ai ajouté cette ligne "export HISTCONTROL=ignoredups" dans le fichier ~/.bashrc pour éviter les entrées en double dans l'historique Bash sur mon bureau Linux . Avez-vous remarqué que j'ai préfixé la variable HISTCONTROL avec "export" ? Savez-vous - à quoi sert l'option "export" ? Si vous vous demandez quelle est la différence entre définir des variables bash avec et sans option d'exportation, lisez la suite !

Différence entre la définition de variables Bash avec et sans exportation

Nous définissons une variable avec export pour la rendre disponible à tous les sous-processus (ou processus enfants). Signification - si vous définissez une variable avec export comme ci-dessous,

export variable_name=value

La variable est disponible pour tout sous-processus que vous exécutez à partir de ce processus shell.

Si vous définissez une variable sans export comme ci-dessous,

variable_name=value

La variable est limitée au shell et elle n'est disponible pour aucun autre sous-processus. Vous pouvez l'utiliser pour des variables temporaires et/ou en boucle.

Permettez-moi de vous montrer un exemple pour que vous puissiez mieux le comprendre.

Permettez-moi de définir une variable nommée "ostechnix" sans "export" comme ci-dessous :

ostechnix="Welcome to ostechnix.com blog!"

Affichez maintenant la valeur à l'aide de la commande "echo":

echo $ostechnix

Il affichera la valeur de la variable ostechnix :

Welcome to ostechnix.com blog!

Maintenant, démarrez une nouvelle session shell Bash en exécutant la commande suivante :

bash

Ensuite, essayez d'afficher la valeur de la variable ostechnix en utilisant la commande echo :

echo $ostechnix

Définir la variable bash sans exportation

Voir? Cela ne renvoie rien ! Vous ne voyez qu’une sortie vide. Il est donc prouvé que lorsque nous définissons une variable sans export, elle ne sera pas disponible pour les processus enfants.

Définissons à nouveau la même variable avec l'option export :

export ostechnix="Welcome to ostechnix.com blog!"

Afficher la valeur de la variable :

echo $ostechnix

Exemple de résultat :

Welcome to ostechnix.com blog!

Démarrez une nouvelle session shell :

bash

Essayez à nouveau d'afficher la valeur de la variable :

echo $ostechnix

Il renverra maintenant la valeur.

Différence entre la définition de variables Bash avec et sans exportation

Par conséquent, l'exportation rend la variable disponible à tous les autres processus enfants dans cet environnement shell.

Articles connexes