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/bashwelcomeMessage="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 :
- Noms en minuscules - variables locales à un script ou à une fonction.
Peu importe qu'il s'agisse de l'orthographe des minuscules/cas de serpent [8] ou du style camel [7]. L'exemple ci-dessus utilise le style de cas de chameau. - Noms en majuscules - constantes, variables d'environnement, variables intégrées au shell.
Gardez à l'esprit que ces variables peuvent déjà être utilisées par d'autres programmes. Les exemples sont $PATH, $LANG, $PWD, $PS4 et $SHELL.
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 -pdé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 SAUVEGARDEConclusion
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
- [1] Programmation Bash, Variables, https://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-5.html
- [2] Institut professionnel Linux LPIC-1, https://www.lpi.org/nos-certifications/lpic-1-overview
- [3] Google Shell Style Guide, Noms de variables, https://google.github.io/styleguide/shellguide.html#s7-naming-conventions
- [4] Fahmida Yesmin : Comment utiliser les variables dans la programmation Bash, https://linuxhint.com/variables-bash-programmation/
- [5] Le wiki des pirates informatiques Bash, https://wiki.bash-hackers.org/
- [6] Le Bash, Wikipédia, https://fr.Wikipédia.org/wiki/Bash_(Unix_shell)
- [7] Affaire Chameau, Wikipédia, https://en.Wikipédia.org/wiki/Camel_case
- [8] Cas du Serpent, Wikipédia, https://en.Wikipédia.org/wiki/Snake_case
- [9] Qu'est-ce que Bash. https://www.gnou.org/software/bash/manual/html_node/What-is-Bash_003f.html
- [10] Utilisation de variables dans Bash https://opensource.com/article/19/8/using-variables-bash
- Comprendre les éléments de programmation Bash https://www.journal linux.com/content/understanding-bash-elements-programming
- Variables Bash https://www.javapoint.com/bash-variables