Exporter une variable
Fait partie de la section Les fondamentaux du Journey Terminal de Coddy — leçon 63 sur 82.
Quand vous définissez une variable comme MY_NAME="Alice", elle n'existe que dans votre shell actuel. Si vous exécutez un script ou lancez un autre programme, cette variable ne sera pas disponible pour celui-ci. C'est là que export entre en jeu.
La commande export rend une variable disponible pour tous les processus enfants, ce qui signifie que les programmes ou scripts lancés depuis votre shell actuel peuvent y accéder :
export MY_NAME="Alice"Vous pouvez également exporter une variable existante :
MY_NAME="Alice"
export MY_NAMELes deux approches obtiennent le même résultat. La variable devient partie de l'environnement qui est passé à toute commande que vous exécutez par la suite.
Pour voir la différence, envisagez d'exécuter un script qui tente d'utiliser $MY_NAME.
Sans export, le script ne voit rien. Avec export, le script peut accéder à la valeur.
C'est pourquoi les variables système comme PATH et HOME sont exportées par défaut. Elles doivent être disponibles pour chaque programme que vous exécutez.
Vous pouvez vérifier qu'une variable est exportée en vérifiant si elle apparaît dans la sortie de env :
env | grep MY_NAMELes variables exportées disparaissent toujours lorsque vous fermez le terminal. La leçon suivante explique comment faire persister les variables entre les sessions.
Défi
FacileExportez une variable appelée PROJECT avec la valeur terminal-course, puis vérifiez qu'elle a été exportée en filtrant la sortie de env pour ne montrer que votre nouvelle variable.
Vous pouvez faire cela en une seule ligne en utilisant export pour définir et exporter la variable en même temps, puis en canalisant env à travers grep pour la trouver.
Votre sortie devrait être :
PROJECT=terminal-courseIndice : Exécutez d'abord
export PROJECT="terminal-course", puis utilisezenv | grep PROJECTpour vérifier qu'elle apparaît dans l'environnement.
Aide-mémoire
La commande export rend une variable disponible aux processus enfants (programmes ou scripts lancés depuis votre shell actuel) :
export MY_NAME="Alice"Vous pouvez également exporter une variable existante :
MY_NAME="Alice"
export MY_NAMESans export, les variables n'existent que dans le shell actuel et ne sont pas accessibles aux scripts ou programmes que vous exécutez.
Pour vérifier qu'une variable est exportée, vérifiez si elle apparaît dans la sortie de env :
env | grep MY_NAMELes variables exportées disparaissent lorsque vous fermez le terminal.
Essayez vous-même
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Les fondamentaux
4Répertoires
Créer Un RépertoireCopier Un RépertoireDéplacer Et Renommer Un RépertoireSupprimer Un RépertoireRécapitulatif - Opérations Sur Les Répertoires7Contenu de fichier
Head et TailComptage de motsCommande SortCommande UniqBases de GrepGrep avec optionsRécap - Détective de texte10Projet Analyseur de Journaux
Aperçu du ProjetAffichage du Fichier Journal2Navigation
Afficher le répertoire de travailLister les fichiersChanger de répertoireChemins absolus vs relatifsRépertoire personnel et racineRécap - Trouver son chemin5Projet Organiser les Photos
Aperçu du ProjetCréation de la Structure8Redirection
Sortie standardÉcraser vers un fichierAjouter à un fichierEntrée standardErreur standardRécapitulatif - Constructeur de logs11Permissions
Comprendre les permissionsLire les permissionsChmod avec des nombresChmod avec des symbolesPropriété des fichiersRécapitulatif - Verrouillez tout14Projet de Script de Sauvegarde
Aperçu du ProjetObtenir le Chemin Source3Fichiers
Créer Un FichierLire Un FichierCopier Un FichierDéplacer Et Renommer Un FichierSupprimer Un FichierRécapitulatif - Opérations Sur Les Fichiers6Caractères jokers et motifs
Le joker étoileLe joker point d'interrogationJokers entre crochetsCombiner les jokersRécapitulatif - Opérations sélectives9Les pipes
Qu'est-ce qu'une pipe ?Chaîner deux commandesChaîner plusieurs commandesPipe avec GrepRécapitulatif - Pipeline de données