Utiliser des variables dans les scripts bash


  • Français


  • Dans la première partie de la série Bash Basics, j’ai brièvement mentionné les variables. Il est temps de les détailler dans ce chapitre.

    Si vous avez déjà fait n’importe quel type de codage, vous devez être familier avec le terme « variable ».

    Si ce n’est pas le cas, considérez une variable comme une boîte qui contient des informations, et ces informations peuvent être modifiées au fil du temps.

    Voyons comment les utiliser.

    Utilisation de variables dans le shell Bash

    Ouvrez un terminal et utilisez initialiser une variable avec un nombre aléatoire 4 :

    var=4

    Alors maintenant, vous avez une variable nommée var et sa valeur est 4. Vous voulez le vérifier ? Accéder à la valeur d’une variable en ajoutant $ avant le nom de la variable. C’est ce qu’on appelle l’expansion des paramètres.

    [email protected]:~$ echo The value of var is $var
    The value of var is 4

    🚧

    Il ne doit PAS y avoir d’espace avant ou après = lors de l’initialisation des variables.

    Si vous le souhaitez, vous pouvez modifier la valeur en autre chose :

    Utiliser des variables dans le shell

    Dans le shell Bash, une variable peut être un nombre, un caractère ou une chaîne (de caractères, espaces compris).

    Différents types de variables dans le shell Bash

    💡

    Comme d’autres choses sous Linux, les noms de variables sont également sensibles à la casse. Ils peuvent être composés de lettres, de chiffres et du trait de soulignement “_”.

    Utilisation de variables dans les scripts Bash

    Avez-vous remarqué que je n’ai pas exécuté de script shell pour afficher les exemples de variables ? Vous pouvez faire beaucoup de choses directement dans le shell. Lorsque vous fermez le terminal, ces variables que vous avez créées n’existeront plus.

    Cependant, votre distribution ajoute généralement des variables globales afin qu’elles soient accessibles dans tous vos scripts et shells.

    Réécrivons quelques scripts. Vous devriez avoir créé le répertoire de script plus tôt, mais cette commande s’en chargera dans les deux cas :

    mkdir -p bash_scripts && cd bash_scripts

    En gros, cela créera bash_scripts répertoire s’il n’existe pas déjà, puis basculez vers ce répertoire.

    Ici. créons un nouveau script nommé knock.sh avec le texte suivant.

    #!/bin/bash
    
    echo knock, knock
    echo "Who's there?"
    echo "It's me, $USER"

    Modifiez l’autorisation du fichier et exécutez le script. Vous l’avez appris dans le chapitre précédent.

    Voici ce que cela a produit pour moi:

    Utilisation de la variable globale dans le script Bahs

    Avez-vous remarqué qu’il y ajoutait automatiquement mon nom ? C’est la magie de la variable globale $USER qui contient le nom d’utilisateur.

    Vous remarquerez peut-être également que j’ai utilisé le ” parfois avec écho mais pas d’autres fois. C’était délibéré. ​​Les guillemets en bash ont des significations particulières. Ils peuvent être utilisés pour gérer les espaces blancs et autres caractères spéciaux. Permettez-moi de montrer un exemple.

    Gestion des espaces dans les variables

    Disons que vous devez utiliser une variable appelée greetings qui a la valeur hello and welcome.

    Si vous essayez d’initialiser la variable comme ceci :

    greetings=Hello and Welcome

    Vous obtiendrez une erreur comme celle-ci :

    Command 'and' not found, but can be installed with:
    sudo apt install and

    C’est pourquoi vous devez utiliser soit des guillemets simples, soit des guillemets doubles :

    greetings="Hello and Welcome"

    Et maintenant, vous pouvez utiliser cette variable comme vous le souhaitez.

    Utilisation d'espaces dans les noms de variables dans bash

    Affecter la sortie de la commande à une variable

    Oui! Vous pouvez stocker la sortie d’une commande dans une variable et les utiliser dans votre script. C’est ce qu’on appelle la substitution de commande.

    var=$(command)

    Voici un exemple :

    [email protected]:~$ today=$(date +%D)
    [email protected]:~$ echo "Today's date is $today"
    Today's date is 06/19/23
    [email protected]:~$ 
    
    Substitution de commande dans bash

    L’ancienne syntaxe utilisait des backticks au lieu de $() pour la substitution de commande. Bien que cela puisse toujours fonctionner, vous devez utiliser la nouvelle notation recommandée.

    💡

    Les variables changent la valeur sauf si vous déclarez une variable “constante” comme ceci : readonly pi=3.14. Dans ce cas, la valeur de la variable pi ne peut pas être modifié car il a été déclaré readlonly.

    🏋️ Temps d’exercice

    Il est temps de mettre en pratique ce que vous avez appris. Voici quelques exercices pour tester votre apprentissage.

    Exercice 1: écrivez un script bash qui imprime votre nom d’utilisateur, le répertoire de travail actuel, le répertoire personnel et le shell par défaut dans le format suivant.

    Hello, there
    My name is XYZ
    My current location is XYZ
    My home directory is XYZ
    My default shell is XYZ

    Indice: Utilisez les variables globales $USER, $PWD, $HOME et $SHELL.

    Exercice 2 : Écrivez un script bash qui déclare une variable nommée price. Utilisez-le pour obtenir la sortie au format suivant :

    Today's price is $X
    Tomorrow's price is $Y

    Où X est la valeur initiale de la variable price et il est doublé pour les prix de demain.

    Indice: Utilisez / pour échapper le caractère spécial $.

    Les réponses aux exercices peuvent être discutées dans ce fil dédié de la communauté.

    Exercice pratique dans Bash Basics Series #2 : Utilisation de variables dans Bash

    Si vous suivez la série Bash Basics sur It’s FOSS, vous pouvez soumettre et discuter des réponses à l’exercice à la fin du chapitre : Les membres expérimentés sont encouragés à faire part de leurs commentaires aux nouveaux membres. Notez qu’il peut y avoir plus d’une réponse à un problème donné.

    Dans le prochain chapitre de la série Bash Basics, vous verrez comment rendre les scripts bash interactifs en passant des arguments et en acceptant les entrées de l’utilisateur.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code