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:
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