Programmation BASH

Exporter des variables Bash

Exporter des variables Bash
Comprendre les variables dans le shell Bash est essentiel pour travailler avec Linux de manière professionnelle. C'est l'une des exigences clés pour la programmation ainsi que pour l'obtention de la certification Linux Professional Institute (LPIC) Niveau 1 [2].

L'article publié précédemment par Fahmida Yesmin [4] vous donne une merveilleuse introduction aux variables Bash. Ici, nous allons plus loin et expliquons comment déclarer des variables dans Bash de manière à pouvoir les utiliser dans d'autres environnements sur votre système Linux, et quels effets secondaires correspondants vous devez prendre en compte.

Une brève description de Bash

Le shell Bash a été publié pour la première fois en 1989 et a été utilisé comme shell de connexion par défaut pour la plupart des distributions Linux. Brian Fox a écrit Bash en tant que shell UNIX et langage de commande pour le projet GNU en remplacement du logiciel libre du shell Bourne. C'est un acronyme pour Bourne à nouveau Shell. Bash est largement compatible avec sh et intègre des fonctionnalités utiles du shell Korn ksh et la coquille C csh [6].

Alors que le système d'exploitation GNU fournit d'autres shells, y compris une version de csh, Bash est le shell interactif par défaut. Il est conçu dans un souci de portabilité et fonctionne actuellement sur presque toutes les versions d'UNIX ainsi que sur d'autres systèmes d'exploitation [9].

Les variables Bash en bref

Les variables sont des composants essentiels des langages de programmation. Ils sont référencés et manipulés dans un programme informatique. En termes simples, les variables représentent des cellules de mémoire nommées. C'est la même chose dans Bash que dans n'importe quel langage de programmation. Cela nous permet, en tant qu'êtres humains et utilisateurs de l'ordinateur, de stocker des valeurs dans le « cerveau » de l'ordinateur et de les retrouver via le nom attribué à la variable.

Le terme variable fait référence à une forme combinée de deux mots, i.e., varier + capable, ce qui signifie que sa valeur peut être modifiée et qu'elle peut être utilisée plusieurs fois. Contrairement à cela, les variables qui ne peuvent pas être modifiées sont appelées des constantes. [dix]

Tant qu'il y a suffisamment de mémoire disponible pour votre script, vous pouvez librement créer et utiliser des variables. Vous pouvez simplement les définir en définissant un nom de variable puis en attribuant sa valeur. Un nom de variable dans Bash peut inclure des lettres, des chiffres et des traits de soulignement. Son nom peut commencer par une lettre et un trait de soulignement, seulement. Les noms de variables valides sont size, tax5 et _tax20 mais pas 5rules.

Une valeur de variable dans Bash peut contenir un nombre, un seul caractère, une chaîne de caractères ou une liste d'éléments (appelée tableau). Il n'a pas de type de données visible, et le type de données interne de la variable sera automatiquement compris (ou dérivé) lors de l'attribution d'une valeur. De plus, il n'est pas nécessaire de déclarer la variable - attribuer une valeur à sa référence créera automatiquement la variable. L'exemple de script Bash ci-dessous le montre pour une affectation de chaîne et une affectation de nombres numériques.

#! /bin/bash
welcomeMessage="Bonjour tout le monde!"
echo $welcomeMessage
prix=145
écho $prix

Conventions de nommage des variables Bash

Il n'y a pas de règles fixes pour l'orthographe des noms de variables, seulement des conventions. Ces conventions sont utilisées :

Pour les entreprises informatiques mondiales, il est courant de travailler avec des guides de style pour garantir un style de codage commun au sein de l'entreprise. Voir l'éditorial du développeur pour IBM et le Google Style Guide [3] pour plus d'informations sur les conventions qu'ils suivent.

Visibilité variable

Le cas par défaut est qu'une variable est liée localement à une structure, une fonction, un script ou un processus, et ne peut pas être accessible de l'extérieur de celui-ci. L'exemple ci-dessous le montre pour la variable $message qui appartient au script et $welcome qui appartient à la fonction outputWelcomeMessage().

#!/bin/bash
# définir un message variable au script
message="Bonjour, encore une fois!"
outputMessageBienvenue ()
# définir une variable locale
bienvenue = "Bonjour!"
echo $bienvenue

outputWelcomeMessage () # imprime Bonjour!
echo $message # affiche Bonjour, encore une fois!

Pour vous assurer qu'une variable précédemment définie avec le même nom est liée localement, utilisez le mot-clé local comme illustré ci-dessous. Sans le mot-clé local, l'affectation à la ligne 8 se rapporterait à la variable définie globalement avec le même nom défini précédemment.

#!/bin/bash
# définir un message variable au script
message="Bonjour, encore une fois!"
outputMessageBienvenue ()
# définit une variable locale avec le même nom
Message local = "Bonjour!"
echo $message

outputWelcomeMessage () # imprime Bonjour!
echo $message # affiche Bonjour, encore une fois!

Étendre la portée d'une variable

Afin de rendre une variable interne visible aux autres processus enfants, une étape supplémentaire est nécessaire. Cette étape s'appelle exporter une variable. Bash propose l'utilisation du mot-clé export suivi du nom de la variable. La liste ci-dessous le montre pour la variable backupPath.

$ backupPath="/opt/backup/"
$ export backupPath

La commande d'exportation est un shell intégré qui est utilisé pour définir la variable comme une variable dont les sous-shells (shells générés à partir de l'original) héritent. Les variables exportées peuvent être lues et écrites par plusieurs processus, puis.

La deuxième option consiste à déclarer la variable en tant que variable d'environnement dès le début. Vous pouvez le faire en utilisant le mot-clé declare suivi de l'option "-x" (voir [5] pour plus d'informations sur la commande declare). L'effet est similaire à la commande d'exportation qui a été introduite avant.

$ declare -x BACKUPPATH="/opt/backup/"

Hériter d'autres sessions

Lorsque vous exécutez un programme, il hérite automatiquement de ses variables d'environnement du processus parent. Par exemple, si $HOME est défini sur /root dans le parent, la variable $HOME de l'enfant est également définie sur /root.

Autres commandes

Entre autres, Linux est livré avec des commandes et des options utiles liées aux variables. Les deux premiers s'appellent env et printenv. Ils listent toutes les variables d'environnement.

L'image ci-dessous montre la sortie de la commande env dans un terminal exécuté dans une session X. Il contient des variables telles que $XTERM (type de terminal), $SHELL (le programme qui est appelé lors de la connexion et affiche /bin/bash pour le chemin vers l'interpréteur Bash), $LS_COLORS (les couleurs utilisées pour mettre en évidence différents fichiers types lors de l'appel de ls) et $DESKTOP_SESSION (l'environnement de bureau X actuel).

Le troisième et le quatrième sont des options de la commande export - -p et -n. -p est l'abréviation de print et affiche simplement toutes les variables exportées dans le shell actuel à l'aide de la commande declare.

$ exporter -p
déclarer -x DESKTOP_SESSION="xfce"
déclarer -x DISPLAY=":0"
déclarer -x GLADE_CATALOG_PATH=":"
déclarer -x GLADE_MODULE_PATH=":"
déclarer -x GLADE_PIXMAP_PATH=":"
declare -x HOME="/home/frank"
déclarer -x LANG="de_DE.UTF-8"

L'option -n est utilisée pour supprimer une variable d'environnement. La liste ci-dessous le montre pour la variable précédemment définie BACKUPPATH.

$ export -n CHEMIN SAUVEGARDE

Conclusion

Bash est un environnement très intelligent mais parfois aussi un peu complexe. Les variables contrôlent la façon dont les différents outils interagissent. L'exportation de variables facilite la communication entre les processus et est facile à utiliser dans la vie quotidienne.

À propos des auteurs

Jacqui Kabeta est environnementaliste, chercheuse passionnée, formatrice et mentor. Dans plusieurs pays africains, elle a travaillé dans l'industrie informatique et les environnements d'ONG.

Frank Hofmann est développeur informatique, formateur et auteur et préfère travailler depuis Berlin, Genève et Cape Town. Co-auteur du livre de gestion des paquets Debian disponible auprès de dpmb.organisation

Liens et références

Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...
Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...
5 meilleurs jeux d'arcade pour Linux
De nos jours, les ordinateurs sont des machines sérieuses utilisées pour les jeux. Si vous ne pouvez pas obtenir le nouveau score élevé, vous saurez c...