Exportation de variables bash

Exportation de variables bash
Comprendre les variables dans la coquille de bash est essentielle pour travailler avec Linux de manière professionnelle. C'est l'une des exigences clés de la programmation ainsi que de la réalisation du niveau 1 de la certification de l'Institut professionnel Linux (LPIC) [2] [2].

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

Une brève description de Bash

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

Tandis que le système d'exploitation GNU fournit d'autres coquilles, y compris une version de csh, Bash est le coquille interactive par défaut. Il est conçu avec la portabilité à l'esprit et fonctionne actuellement sur presque toutes les versions d'Unix plus d'autres systèmes d'exploitation [9].

Variables bash en un mot

Les variables sont des composantes essentielles des langages de programmation. Ils sont référencés et manipulés dans un programme informatique. Autrement dit, les variables représentent les 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 les valeurs dans le «cerveau» de l'ordinateur et de les retrouver via le nom attribué de 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 elle peut être utilisée pour plusieurs fois. Contrairement à cela, les variables qui ne peuvent pas être modifiées sont appelées constantes. [dix]

Tant qu'il y a suffisamment de mémoire disponible pour votre script, vous pouvez créer et utiliser librement les variables. Vous pouvez simplement les définir en définissant un nom de variable, puis en attribuant sa valeur. Un nom variable en bash peut inclure des lettres, des chiffres et des soulignements. Son nom peut être commencé avec une lettre et un soulignement, seulement. Les noms de variables valides sont la taille, Tax5 et _Tax20 mais pas 5rules.

Une valeur variable dans Bash peut contenir un nombre, un seul caractère, une chaîne de caractères ou une liste d'éléments (appelé tableau). Il n'a pas de type de données visible et le type de données interne de la variable sera automatiquement déterminé (ou dérivé) lors de l'affectation 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 démontre pour une affectation de chaîne et une affectation numérique.

#! / bac / bash
welcomeMessage = "Hello World!"
Echo $ welcomemsage
Prix ​​= 145
Echo $ Price

Conventions de dénomination des variables bash

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

  • Noms minuscules - Variables locales à un script ou à une fonction.
    Peu importe que ce soit orthographié Lower_Case / Snake Case [8], ou Style Camel Case [7]. L'exemple ci-dessus utilise le style de cas de chameau.
  • Noms majuscules - Constantes, variables d'environnement, variables intégrées à coque.
    Gardez à l'esprit que ces variables pourraient déjà être utilisées par d'autres programmes. Les exemples sont $ path, $ lang, $ pwd, $ ps4 et $ shell.

Pour les sociétés informatiques mondiales, il est courant de travailler avec des guides de style pour assurer un style de codage commun parmi 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 localement liée à une structure, une fonction, un script ou un processus, et n'est pas accessible depuis l'extérieur. L'exemple ci-dessous le montre pour le message variable $ qui appartient au script, et $ bienvenue qui appartient à la fonction outputwelcomeMessage ().

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

outputwelcomessage () # imprime bonjour!
echo $ message # imprime 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 démontré suivant. Sans le mot-clé local, la mission à la ligne 8 se rapporterait à la variable définie à l'échelle mondiale avec le même nom défini précédemment.

#!/ bac / bash
# définir un message variable au script
message = ”Bonjour, encore une fois!"
outputwelcomessage ()
# définir une variable locale avec le même nom
Message local = ”Bonjour!"
Echo $ message

outputwelcomessage () # imprime bonjour!
echo $ message # imprime bonjour, encore une fois!

Prolonger la portée d'une variable

Afin de rendre une variable interne visible pour les autres processus enfants, une étape supplémentaire est nécessaire. Cette étape est appelée exportation d'une variable. Bash offre l'utilisation de l'exportation de mots clés suivie du nom de la variable. La liste ci-dessous le démontre pour la variable backuppath.

$ backuppath = ”/ opt / backup /”
$ export backuppath

La commande d'exportation est une coquille intégrée qui est utilisée pour définir la variable comme celle que les sous-coquilles (coquilles engendrées de l'original). Les variables exportées peuvent être lues et écrites par plus d'un processus, alors.

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é DÉCLARIAGE suivi par 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 des 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 de maison $ 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 sont appelés env-and-impridenv. Ils répertorient toutes les variables d'environnement.

L'image ci-dessous montre la sortie de la commande Env dans un terminal qui est exécuté en une session X. Il contient des variables comme $ xterm (type de terminal), $ shell (le programme qui est appelé à se connecter, et affiche / bin / bash pour le chemin d'accès à l'interprète bash), $ ls_colors (les couleurs qui sont utilisées pour mettre en surbrillance différents fichiers Types lorsque vous appelez ls) et $ Desktop_Session (l'environnement de bureau X actuel).

Le troisième et le quatrième sont les options de la commande d'exportation - -p et -n. -P est court pour l'impression et affiche simplement toutes les variables exportées dans le shell actuel à l'aide de la commande Declare.

$ export -p
Declare -x Desktop_Session = "XFCE"
Declare -x display = ": 0"
Declare -x Glade_Catalog_Path = ":"
Declare -x Glade_Module_Path = ":"
Declare -x glade_pixmap_path = ":"
Declare -x home = "/ home / franc"
Declare -x lang = "de_de.UTF-8 "

L'option -N est utilisée pour un défaut pour une variable d'environnement. La liste ci-dessous le démontre pour le backuppath variable précédemment défini.

$ export -n backuppath

Conclusion

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

À propos des auteurs

Jacqui Kabeta est un environnementaliste, chercheur, entraîneur et mentor passionné. Dans plusieurs pays africains, elle a travaillé dans l'industrie informatique et les environnements d'ONG.

Frank Hofmann est un développeur, entraîneur et auteur informatique et préfère travailler à Berlin, Genève et Cape Town. Co-auteur du livre de gestion des packages Debian disponible auprès de DPMB.org

Liens et références

  • [1] Programmation bash, variables, https: // tldp.org / howto / bash-prro-howto-5.html
  • [2] Linux Professional Institute LPIC-1, https: // www.LPI.org / our-certifications / LPIC-1-Overview
  • [3] Guide de style Google Shell, 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] The Bash Hackers Wiki, https: // wiki.charbonniers.org /
  • [6] The Bash, Wikipedia, https: // en.Wikipédia.org / wiki / bash_ (Unix_shell)
  • [7] Case Camel, Wikipedia, https: // en.Wikipédia.org / wiki / camel_case
  • [8] Case de serpent, wikipedia, https: // en.Wikipédia.org / wiki / snake_case
  • [9] Qu'est-ce que Bash. https: // www.gnou.org / logiciel / 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 bash de la programmation https: // www.linuxjournal.com / contenu / compréhension-bash-elements-programmation
  • Variables bash https: // www.javatpoint.com / bash-variables