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

Les scripts Bash sont l’un des moyens les plus populaires et les plus accessibles de programmer votre ordinateur Linux. Ces exemples de script simples vous aideront à comprendre le processus et vous présenteront les bases de la programmation Bash.

1. Comment imprimer Hello World dans Bash

L’exemple Hello World est un excellent moyen d’en apprendre davantage sur n’importe quel langage de programmation, et Bash ne fait pas exception.

Voici comment imprimer « Hello World » à l’aide de Bash :

  • Ouvrez un éditeur de texte et commencez à éditer un nouveau fichier contenant les lignes de code suivantes.
  • La première ligne de vos scripts Bash doit toujours ressembler à ceci :
     #!/bin/bash 

    La commande Shebang (#!/bin/bash) est essentielle car le shell l’utilise pour décider comment exécuter le script. Dans ce cas, il utilise l’interpréteur Bash.

  • Toute ligne commençant par un symbole # est un commentaire. La ligne shebang est un cas particulier, mais vous pouvez utiliser vos propres commentaires pour expliquer votre code. Ajoutez un commentaire à la ligne 2, par exemple :
      
  • Vous pouvez imprimer sur la sortie standard à l’aide de la commande echo, suivie de la valeur que vous souhaitez imprimer. Ajoutez ce qui suit à la ligne 3 :
     echo "Hello World" 
  • Enregistrez le script, de préférence avec une extension .sh, par exemple hello_world.sh. L’extension n’est pas une obligation, mais c’est une convention qu’il est utile de respecter.
  • Pour exécuter votre script, rendez le fichier 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 exécuter le script depuis son répertoire :
     ./hello_world.sh 
  • Lorsque le script s’exécutera, il imprimera le texte « Hello World » sur votre terminal :
  •   Comment planifier l'arrêt sous Linux

    2. Créez un répertoire en lisant l’entrée

    À partir de vos scripts, vous pouvez exécuter n’importe quel programme que vous pourriez normalement exécuter sur la ligne de commande. Par exemple, vous pouvez créer un nouveau répertoire à partir de votre script à l’aide de la commande mkdir.

  • Commencez par la même phrase shebang qu’avant :
     #!/bin/bash 
  • Demandez à l’utilisateur un nom de répertoire, en utilisant la commande echo comme précédemment :
     echo "Enter new directory name:" 
  • Utilisez la commande read intégrée pour récupérer les entrées de l’utilisateur. L’argument unique nomme une variable dans laquelle le shell stockera l’entrée :
     read newdir 
  • Lorsque vous devez utiliser la valeur stockée dans une variable, préfixez son nom avec le symbole dollar ($). Vous pouvez passer le contenu de la variable d’entrée en argument à la commande mkdir, pour créer un nouveau répertoire :
     mkdir $newdir 
  • Lorsque vous exécutez ce script, il vous demandera une entrée. Entrez un nom de répertoire valide et vous verrez que le script le crée dans votre répertoire actuel :
  • 3. Créez un répertoire à l’aide d’arguments de ligne de commande

    Au lieu de lire les entrées de manière interactive, la plupart des commandes Linux prennent en charge les arguments. Vous pouvez fournir un argument lorsque vous exécutez un programme, pour contrôler son comportement.

      Comment définir les priorités de processus avec nice et renice sous Linux

    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 à l’aide de la commande mkdir de l’exemple précédent. Cependant, cette fois, utilisez la variable intégrée $1 :
     #!/bin/bash
    mkdir $1
  • Exécutez le script, en passant cette fois le nom que vous avez choisi pour un nouveau répertoire comme argument :
     ./arg_dir.sh Test 
  • Vous vous demandez peut-être ce qui se passe si vous exécutez le script sans fournir aucun argument. Essayez-le et voyez ; vous devriez recevoir un message d’erreur commençant par « usage : mkdir » :

    Sans aucun 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 renverra cette erreur. Pour éviter cela, vous pouvez vérifier vous-même la condition et présenter une erreur plus conviviale :

  • Comme toujours, commencez par la phrase shebang :
     #!/bin/bash 
  • Avant d’appeler mkdir, recherchez un premier argument vide (c’est-à-dire aucun argument). Vous pouvez le faire en utilisant l’instruction if de Bash qui exécute le code en fonction d’une condition :
     if ["$1" = ""]; then 
  • Si le premier argument est vide, affichez une erreur et quittez votre script :
         echo "Please provide a new directory name as the first argument"
        exit
  • Le mot clé « fi » légèrement étrange (« if » inversé) signale la fin d’une instruction if dans Bash :
     fi 
  • Votre script peut maintenant continuer comme avant, pour gérer le cas où un argument est présent :
     mkdir $1 
  • Lorsque vous exécuterez cette nouvelle version du script, vous recevrez un message si vous oubliez d’inclure un argument :

      Comment passer de Bash à C Shell sous Linux

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

    Si vous répétez le même code, envisagez de l’envelopper dans une fonction. Vous pouvez ensuite appeler cette fonction quand vous en avez 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 de commandes entre accolades :
     del_file() {
        echo "deleting $1"
        rm $1
    }

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

     del_file test.txt 

  • Lorsque vous appelez une fonction, elle définira le $ spécial ? valeur avec l’état de sortie de la dernière commande exécutée. L’état de sortie est utile pour la vérification des erreurs ; dans cet exemple, vous pouvez tester si la commande rm a réussi :

     if [ $? -ne 0 ]; then
        echo "Sorry, could not delete the file"
    fi

    5. Créez une calculatrice de base pour les calculs arithmétiques

    Ce dernier exemple montre une calculatrice très basique. Lorsque vous l’exécuterez, vous entrerez deux valeurs, puis choisirez une opération arithmétique à effectuer sur elles.

    Voici le code de calc.sh :

     #!/bin/bash


    echo "Enter first number: "
    read a

    echo "Enter second number: "
    read b


    echo "Enter Arithmetic Operation Choice :"
    echo "1. Addition"
    echo "2. Subtraction"
    echo "3. Multiplication"
    echo "4. Division"
    read choice


    case $choice in
      1)
     result=`echo $a + $b | bc`
      ;;

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

      3)
     result=`echo $a \* $b | bc`
      ;;

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

    echo "Result: $result"

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

    Ce script utilise la commande bc pour effectuer chaque calcul.