Créer des variables personnalisées

ShellBeginner
Pratiquer maintenant

Introduction

Dans les laboratoires précédents, nous avons examiné des variables existantes comme User. Créons maintenant vos propres « notes autocollantes ».

Une variable est simplement un nom qui contient du texte.

Cependant, lorsque vous créez une variable, elle reste privée dans votre shell actuel. Pour la partager avec d’autres programmes, vous devez l’« exporter ».

Cette distinction entre une variable shell et une variable d’environnement est l’une des notions centrales de ce module. Une variable ne fait pas automatiquement partie de l’environnement visible par les processus enfants.

Dans ce laboratoire, vous allez :

  • Créer une variable MYCAFE.
  • Lire son contenu.
  • L’« exporter ».
  • Vérifier qu’elle fonctionne dans un second shell.

Créer une variable

Créons une variable appelée MYCAFE et donnons-lui la valeur "espresso".

Créer une variable revient à écrire sur une note autocollante.

Exécutez la commande suivante :

MYCAFE="espresso"

Important : n’utilisez pas d’espaces autour du signe =.

  • Correct : MYCAFE="espresso"
  • Incorrect : MYCAFE = "espresso"

Si vous utilisez des espaces, le shell considère MYCAFE comme une commande.

C’est un bon exemple de la sensibilité de la syntaxe du shell aux espaces. Dans le shell, les espaces ne servent pas uniquement à la mise en forme visuelle ; ils séparent souvent des mots et des arguments, avec une véritable signification.

Afficher une variable

Vérifiez maintenant que la valeur a bien été enregistrée.

Pour accéder à la valeur, utilisez le signe dollar $.

Exécutez la commande suivante :

echo $MYCAFE

Résultat :

espresso

Si vous omettez le $, echo affiche simplement le mot "MYCAFE".

Exporter une variable

Pour le moment, MYCAFE est une variable locale. C’est comme une note dans votre carnet personnel.

Pour la partager avec d’autres programmes, vous devez l’exporter. Elle devient ainsi une variable d’environnement, comme si vous l’affichiez sur un panneau d’information.

Vous pouvez considérer export comme une instruction donnée au shell : « Incluez cette variable lorsque vous lancez des programmes enfants. » Sans exportation, la valeur reste locale au shell actuel.

Exécutez la commande suivante :

export MYCAFE

Désormais, MYCAFE est transmise à tous les programmes que vous démarrez depuis ce shell.

Tester dans un shell enfant

Vérifions que cela fonctionne en démarrant un shell « enfant ».

  1. Démarrez une nouvelle session bash :
bash

Vous vous trouvez maintenant dans un nouveau processus shell.

  1. Vérifiez qu’il connaît MYCAFE :
echo $MYCAFE

Résultat :

espresso

Cela fonctionne ! Le shell enfant a hérité de la valeur.

L’héritage est le concept clé ici. Les processus enfants commencent souvent avec une copie de l’environnement du processus parent. C’est pourquoi les variables exportées sont un moyen très courant de transmettre un contexte aux scripts et aux commandes.

  1. Quittez le shell enfant et revenez au shell parent :
exit

Résumé

Dans ce laboratoire, vous avez pratiqué le cycle de vie d’une variable :

  • Création : MYCAFE="espresso" (aucun espace !)
  • Lecture : echo $MYCAFE (n’oubliez pas le $)
  • Partage : export MYCAFE (pour la rendre accessible aux processus enfants)

C’est exactement le mécanisme utilisé par le système pour configurer votre environnement (PATH, USER, etc.) avant même que vous vous connectiez !