5 exemples de scripts Bash pour vous aider à apprendre la programmation Linux



Les scripts Bash constituent une méthode largement répandue et accessible pour programmer votre système Linux. Ces exemples simples de scripts vous aideront à saisir le fonctionnement et vous familiariseront avec les fondamentaux de la programmation en Bash.

1. Afficher « Bonjour le monde » en Bash

L’exemple « Bonjour le monde » est un excellent moyen de découvrir un langage de programmation, et Bash ne déroge pas à cette règle.

Voici comment afficher « Bonjour le monde » en utilisant Bash :

  • Ouvrez un éditeur de texte et créez un nouveau fichier en y insérant les lignes de code suivantes.
  • La première ligne de vos scripts Bash doit toujours être :
     #!/bin/bash 

    La directive Shebang (#!/bin/bash) est primordiale car elle indique au shell comment exécuter le script. Ici, elle spécifie l’interpréteur Bash.

  • Toute ligne débutant par le symbole # est un commentaire. La ligne shebang est un cas particulier, mais vous pouvez utiliser vos propres commentaires pour documenter votre code. Par exemple, ajoutez un commentaire à la deuxième ligne :
      # Ceci est un commentaire d'exemple 
  • Pour afficher du texte sur la sortie standard, utilisez la commande `echo`, suivie du texte à afficher. Ajoutez cette ligne à la troisième ligne :
     echo "Bonjour le monde" 
  • Enregistrez le script, idéalement avec l’extension .sh, par exemple hello_world.sh. Bien que cette extension ne soit pas obligatoire, elle est une convention utile à respecter.
  • Pour exécuter votre script, rendez-le exécutable. Utilisez la commande `chmod` (changer de mode) avec l’argument +x (exécutable) et le nom de votre script shell :
     chmod +x hello_world.sh 
  • Utilisez cette commande pour lancer le script depuis son répertoire :
     ./hello_world.sh 
  • Le script affichera alors le texte « Bonjour le monde » dans votre terminal.
  • 2. Créer un répertoire en saisissant une donnée

    Vos scripts peuvent exécuter n’importe quel programme que vous pourriez normalement lancer en ligne de commande. Par exemple, vous pouvez créer un nouveau répertoire depuis votre script à l’aide de la commande `mkdir`.

  • Commencez par la même directive shebang qu’auparavant :
     #!/bin/bash 
  • Demandez à l’utilisateur de saisir un nom de répertoire, à l’aide de la commande `echo` comme précédemment :
     echo "Saisissez le nom du nouveau répertoire :" 
  • Utilisez la commande intégrée `read` pour récupérer la saisie de l’utilisateur. L’argument unique spécifie une variable dans laquelle le shell stockera la saisie :
     read nouveau_repertoire 
  • Lorsque vous souhaitez utiliser la valeur stockée dans une variable, faites précéder son nom du symbole dollar ($). Vous pouvez passer le contenu de la variable en argument à la commande `mkdir`, afin de créer un nouveau répertoire :
     mkdir $nouveau_repertoire 
  • Lorsque vous lancez ce script, il vous demandera une saisie. Entrez un nom de répertoire valide, et le script le créera dans votre répertoire courant :
  • 3. Créer un répertoire en utilisant des arguments de ligne de commande

    Plutôt que de récupérer les saisies de manière interactive, la plupart des commandes Linux acceptent des arguments. Vous pouvez fournir un argument lors de l’exécution d’un programme pour modifier son comportement.

    Dans votre script, vous pouvez utiliser `$1` pour faire référence à une variable spéciale contenant la valeur du premier argument. `$2` fera référence au deuxième argument, et ainsi de suite.

  • Créez un répertoire en utilisant la commande `mkdir`, comme dans l’exemple précédent. Cependant, cette fois-ci, utilisez la variable intégrée `$1` :
     #!/bin/bash
    mkdir $1
  • Lancez le script, en passant cette fois-ci le nom que vous avez choisi pour un nouveau répertoire en tant qu’argument :
     ./creer_repertoire.sh Test 
  • Vous vous demandez peut-être ce qu’il se passe si vous exécutez le script sans fournir aucun argument. Essayez, et vous devriez recevoir un message d’erreur commençant par « usage : mkdir » :

    Sans argument de ligne de commande, la valeur de `$1` sera vide. Lorsque votre script appelle `mkdir`, il ne lui transmettra pas d’argument, et la commande `mkdir` générera cette erreur. Pour éviter cela, vous pouvez vérifier la condition vous-même et afficher un message d’erreur plus convivial :

  • Comme toujours, commencez par la directive shebang :
     #!/bin/bash 
  • Avant d’appeler `mkdir`, vérifiez si le premier argument est vide (c’est-à-dire, aucun argument). Vous pouvez le faire en utilisant l’instruction `if` de Bash, qui exécute du code en fonction d’une condition :
     if [ -z "$1" ]; then 
  • Si le premier argument est vide, affichez un message d’erreur et quittez le script :
         echo "Veuillez fournir un nom de répertoire en tant que premier argument"
        exit
  • Le mot-clé « fi » (l’inverse de « if ») marque la fin d’une instruction `if` en Bash :
     fi 
  • Votre script peut maintenant continuer comme avant pour traiter le cas où un argument est présent :
     mkdir "$1" 
  • Lorsque vous lancerez cette nouvelle version du script, vous recevrez un message si vous oubliez de fournir un argument :

    4. Supprimer un fichier à l’aide d’une fonction Bash

    Si vous répétez le même code, envisagez de l’encapsuler dans une fonction. Vous pourrez ensuite appeler cette fonction lorsque vous en aurez besoin.

    Voici un exemple de fonction qui supprime un fichier donné.

  • Commencez par la ligne shebang :
     #!/bin/bash 
  • Définissez une fonction en écrivant son nom, suivi de parenthèses vides et des commandes entre accolades :
     supprimer_fichier() {
        echo "Suppression de $1"
        rm "$1"
    }

    Vous pouvez ensuite appeler la fonction et lui transmettre le nom d’un fichier à supprimer :

     supprimer_fichier test.txt 

  • Lorsqu’une fonction est appelée, elle met à jour la variable spéciale `$?` avec le code de retour de la dernière commande exécutée. Le code de retour est utile pour la gestion des erreurs ; dans cet exemple, vous pouvez vérifier si la commande `rm` a réussi :

     if [ $? -ne 0 ]; then
        echo "Désolé, la suppression du fichier a échoué"
    fi

    5. Créer une calculatrice basique pour les calculs arithmétiques

    Ce dernier exemple illustre une calculatrice très simple. Lorsque vous l’exécuterez, vous saisirez deux valeurs, puis vous choisirez une opération arithmétique à effectuer sur ces valeurs.

    Voici le code du script calc.sh :

     #!/bin/bash
    

    echo "Saisissez le premier nombre: " read a

    echo "Saisissez le deuxième nombre: " read b

    echo "Choisissez l'opération arithmétique :" echo "1. Addition" echo "2. Soustraction" echo "3. Multiplication" echo "4. Division" read choix

    case $choix in   1)  resultat=`echo "$a + $b" | bc`   ;;

      2)  resultat=`echo "$a - $b" | bc`  ;;

      3)  resultat=`echo "$a * $b" | bc`   ;;

      4)  resultat=`echo "scale=2; $a / $b" | bc`   ;; esac

    echo "Résultat: $resultat"

    Notez l’utilisation de `case … esac`, qui est l’équivalent en Bash de l’instruction `switch` dans d’autres langages. Elle vous permet de tester une valeur (ici, la variable `choix`) par rapport à plusieurs valeurs fixes, et d’exécuter le code correspondant.

    Ce script utilise la commande `bc` pour effectuer chaque calcul.