Tutoriel de script Bash pour les débutants


  • Français


  • Shell est la partie centrale de Linux. Il vous permet d’interagir avec le noyau Linux en utilisant diverses commandes telles que cd, ls, cat, etc.

    Bash est l’un des nombreux shells disponibles pour Linux. Ils ont pour la plupart une syntaxe commune mais pas identique. Bash est le shell le plus populaire et est la valeur par défaut sur la plupart des distributions Linux.

    Vous ouvrez un terminal ou une session SSH et vous avez un shell en cours d’exécution même si vous ne pouvez pas vraiment le visualiser.

    Présentation du terminal Linux

    Lorsque vous tapez une commande, elle est interprétée par le shell. Si la commande et la syntaxe sont correctes, elle sera exécutée sinon vous verrez une erreur.

    Pourquoi des scripts bash alors que vous pouvez simplement exécuter des commandes Linux ?

    Vous pouvez entrer les commandes directement dans le terminal et elles seront exécutées.

    abhishek@itsfoss:~$ echo "hello world"
    hello world
    

    Et la même chose peut également être faite dans un script :

    abhishek@itsfoss:~$ cat >> script.sh
    #!/bin/bash
    
    echo "hello world"
    abhishek@itsfoss:~$ bash script.sh
    hello world
    

    Pourquoi avez-vous besoin de scripts shell alors? Parce que vous n’avez pas à taper la même commande encore et encore. Vous venez d’exécuter le script shell.

    De plus, si vous avez une logique compliquée dans votre script, tout taper dans le terminal ne sera pas une bonne idée.

    Par exemple, si vous entrez la commande ci-dessous, cela fonctionnera. Mais ce n’est pas facile à comprendre et le taper encore et encore (ou même le chercher dans l’historique bash) est pénible.

    if [ $(whoami) = 'root' ]; then echo "root"; else echo "not root"; fi

    Au lieu de cela, vous pouvez mettre un script shell afin qu’il soit plus facile à comprendre et à exécuter sans effort :

    #!/bin/bash
    
    if [ $(whoami) = 'root' ]; then
    	echo "You are root"
    else
    	echo "You are not root"
    fi

    C’était encore simple. Imaginez un script compliqué avec cinquante ou cent lignes !

    Qu’allez-vous apprendre ?

    Il y a neuf sections dans ce didacticiel de script bash. Vous apprendrez à :

    • Créez et exécutez votre premier script shell bash
    • Utiliser des variables
    • Passez des arguments et acceptez les entrées utilisateur dans vos scripts bash
    • Effectuer des calculs mathématiques
    • Manipuler des chaînes
    • Utilisez des instructions conditionnelles comme if-else
    • Utiliser les boucles for, while et until
    • Créer des fonctions

    💡

    Toutes les sections vous donneront un bref exemple. Si vous le souhaitez, vous pouvez prolonger la section en visitant le chapitre détaillé de chaque section. Ces chapitres contiennent également des exercices pratiques.

    Quel est le public cible ?

    Toute personne souhaitant commencer à apprendre les scripts shell bash.

    Si vous êtes un étudiant avec des scripts shell dans le cadre de votre programme de cours, cette série est pour vous.

    Si vous êtes un utilisateur Linux de bureau régulier, cette série vous aidera à comprendre la plupart des scripts shell que vous rencontrez tout en explorant divers logiciels et correctifs. Vous pouvez également l’utiliser pour automatiser certaines tâches courantes et répétitives.

    À la fin de ce didacticiel sur les scripts bash, vous devriez être capable d’écrire des scripts bash simples.

    🚧

    Il est souhaitable que vous ayez une connaissance de base de la ligne de commande Linux et de tout langage de programmation.

    Si vous êtes absolument nouveau dans la ligne de commande Linux, je vous conseille de commencer par maîtriser les bases.

    19 astuces de base mais essentielles pour les terminaux Linux que vous devez connaître

    Apprenez quelques petites choses basiques mais souvent ignorées sur le terminal. Avec les petites astuces, vous devriez pouvoir utiliser le terminal avec un peu plus d’efficacité.

    Vous devez comprendre comment accéder à un emplacement spécifique dans la ligne de commande. Pour cela, vous devez comprendre comment fonctionne le chemin dans le système de fichiers Linux.

    Chemin absolu ou relatif sous Linux : quelle est la différence ?

    Dans ce chapitre d’apprentissage essentiel de Linux, découvrez les chemins relatifs et absolus sous Linux. Quelle est la différence entre eux et lequel devriez-vous utiliser.

    Ensuite, cette série de didacticiels vous donne les bases de la navigation dans les répertoires et de la manipulation des fichiers.

    Premiers pas avec le terminal Linux

    Vous voulez connaître les bases de la ligne de commande Linux ? Voici une série de tutoriels avec une approche pratique.

    1. Écrire votre premier script shell bash

    Créer un nouveau fichier nommé hello.sh:

    nano hello.sh

    Cela ouvrira l’éditeur nano dans le terminal. Entrez-y les lignes suivantes :

    #!/bin/bash
    
    echo "Hello World"

    Enregistrez et quittez l’éditeur nano en appuyant sur la touche Ctrl+X.

    Maintenant, vous pouvez exécuter le script shell bash de la manière suivante :

    bash hello.sh

    Et vous devriez voir la sortie suivante :

    Hello World

    Une autre méthode consiste à accorder d’abord au script l’autorisation d’exécution :

    chmod u+x hello.sh

    Et puis exécutez-le de cette manière:

    ./hello.sh

    💡

    Vous pouvez également utiliser un éditeur de texte basé sur une interface graphique pour écrire le script. Ce sera probablement plus facile pour écrire des scripts plus longs. Cependant, vous devez basculer vers le répertoire dans lequel le script est enregistré pour l’exécuter.

    Toutes nos félicitations! Vous venez d’exécuter votre premier script bash.

    Bash Basics #1 : Créer et exécuter votre premier script shell Bash

    Commencez à apprendre les scripts bash avec cette nouvelle série. Créez et exécutez votre premier script shell bash dans le premier chapitre.

    2. Utilisation de variables dans les scripts bash

    Les variables sont déclarées de la manière suivante :

    var=some_value

    Et puis la variable est accessible comme ceci:

    $var

    🚧

    Il ne doit pas y avoir d’espace avant et après = lors de la déclaration de la variable.

    Modifions le script précédent en ajoutant une variable.

    #!/bin/bash
    
    message="Hello World"
    
    echo $message

    Le résultat restera le même si vous exécutez ce script :

    Hello World

    Bash Basics #2 : Utiliser des variables dans les scripts Bash

    Dans ce chapitre de la série Bash Basics, apprenez à utiliser des variables dans les scripts Bash.

    3. Passer des arguments au script bash

    Vous pouvez passer des arguments à un script bash lors de son exécution de la manière suivante :

    ./my_script.sh arg1 arg2
    

    Dans le script, vous pouvez utiliser $1 pour le 1er argument, $2 pour le 2ème argument et ainsi de suite. $0 est une variable spéciale qui contient le nom du script en cours d’exécution.

    Maintenant, créez un nouveau script shell nommé arguments.sh et ajoutez-y les lignes suivantes :

    #!/bin/bash
    
    echo "Script name is: $0"
    echo "First argument is: $1"
    echo "Second argument is: $2"

    Rendez-le exécutable et exécutez-le comme ceci :

    abhishek@itsfoss:~$ ./argument.sh abhishek prakash
    Script name is: ./argument.sh
    First argument is: abhishek
    Second argument is: prakash

    Voici un aperçu des variables spéciales :

    Variable spéciale Description
    0 $ Nom du script
    1 $, 2 $… 9 $ Arguments de script
    ${n} Arguments de script de 10 à 255
    $# Nombre d’arguments
    $@ Tous les arguments ensemble
    $$ ID de processus du shell actuel
    $ ! ID de processus de la dernière commande exécutée
    $ ? État de sortie de la dernière commande exécutée

    Vous pouvez également rendre votre script bash interactif en acceptant les entrées de l’utilisateur à partir du clavier.

    Pour cela, vous devrez utiliser la commande read. Vous pouvez aussi utiliser read -p commande pour inviter l’utilisateur à saisir le clavier sans commande d’écho.

    #!/bin/bash
    
    echo "What is your name, stranger?"
    read name
    read -p "What's your full name, $name? " full_name
    echo "Welcome, $full_name"

    Maintenant, si vous exécutez ce script, vous devrez entrer les “arguments” lorsque vous y serez invité.

    abhishek@itsfoss:~$ ./argument.sh 
    What is your name, stranger?
    abhishek
    What's your full name, abhishek? abhishek prakash
    Welcome, abhishek prakash
    

    Bash Basics #3 : Passer des arguments et accepter les entrées de l’utilisateur

    Apprenez à passer des arguments aux scripts bash et à les rendre interactifs dans ce chapitre de la série Bash Basics.

    4. Effectuer une opération arithmétique

    La syntaxe des opérations arithmétiques dans le shell bash est la suivante :

    $((arithmetic_operation))

    Voici la liste des opérations arithmétiques que vous pouvez effectuer en bash

    Opérateur Description
    + Ajout
    Soustraction
    * Multiplication
    / Division entière (sans décimale)
    % Division du module (seul reste)
    ** Exponentiation (a à la puissance b)

    Voici un exemple d’exécution de sommation et de soustraction dans un script bash :

    #!/bin/bash
    
    read -p "Enter first number: " num1
    read -p "Enter second number: " num2
    
    sum=$(($num1+$num2))
    sub=$(($num1-$num2))
    echo "The summation of $num1 and $num2 is $sum"
    echo "The substraction of $num2 from $num1 is $sub"

    Vous pouvez exécuter le script shell avec un nombre aléatoire de votre choix.

    Exemple d'addition et de soustraction dans le script shell Bash

    Il y a un gros problème si vous essayez la division. Bash ne fonctionne qu’avec des entiers. Il n’a pas le concept de nombres décimaux par défaut. Et ainsi vous obtiendrez 3 comme résultat de 10/3 au lieu de 3,333.

    Pour les opérations en virgule flottante, vous devrez utiliser la commande bc de cette manière :

    #!/bin/bash
    
    num1=50
    num2=6
    
    result=$(echo "$num1/$num2" | bc -l)
    
    echo "The result is $result"

    Et cette fois, vous verrez un résultat précis.

    The result is 8.33333333333333333333
    

    Bash Basics Series #4 : Opérations arithmétiques

    Dans le quatrième chapitre de la série, apprenez à utiliser les mathématiques de base dans Bash.

    5. Utilisation de tableaux dans les scripts bash

    Au lieu d’utiliser plusieurs variables, vous pouvez utiliser des tableaux dans bash pour stocker des valeurs dans la même catégorie.

    Vous pouvez déclarer un tableau comme ceci :

    distros=(Ubuntu Fedora SUSE "Arch Linux" Nix)
    

    Pour accéder à un élément, utilisez :

    ${array_name[N]}
    

    Comme la plupart des autres langages de programmation, l’indice de tableau commence à 0.

    Vous pouvez afficher tous les éléments d’un tableau comme ceci :

    ${array[*]}
    

    Et obtenez la longueur du tableau comme ceci :

    ${#array_name[@]}
    

    Bash Basics Series #5 : Utiliser des tableaux dans Bash

    Il est temps d’utiliser les tableaux dans les scripts shell bash dans ce chapitre. Apprenez à ajouter des éléments, à les supprimer et à obtenir la longueur du tableau.

    6. Opération de chaîne de base dans Bash

    Bash est capable d’effectuer un certain nombre d’opérations sur les chaînes.

    Vous pouvez obtenir la longueur de la chaîne de cette manière :

    ${#string}
    

    Joindre deux chaînes :

    str3=$str1$str2
    

    Extrayez une sous-chaîne en fournissant la position de départ de la sous-chaîne et sa longueur :

    ${string:$pos:$len}
    

    Voici un exemple :

    Extraction de sous-chaîne dans bash

    Vous pouvez également remplacer une partie de la chaîne donnée :

    ${string/substr1/substr2}
    

    Et vous pouvez également supprimer une sous-chaîne de la chaîne donnée :

    ${string/substring}
    

    Bash Basics Series #6 : Gestion des opérations sur les chaînes

    Dans ce chapitre de la série Bash Basics, apprenez à effectuer diverses opérations courantes sur les chaînes, telles que l’extraction, le remplacement et la suppression de sous-chaînes.

    7. Utilisez des instructions conditionnelles dans Bash

    Vous pouvez ajouter une logique conditionnelle à vos scripts bash en utilisant des instructions if ou if-else. Ces déclarations se terminent par fi.

    La syntaxe d’une seule instruction if est :

    if [ condition ]; then
      your code
    fi

    Attention à l’utilisation [ ... ]; et then .

    La syntaxe de l’instruction if-else est :

    if [ expression ]; then
    
      ## execute this block if condition is true else go to next
    
    elif [ expression ]; then
    
      ## execute this block if condition is true else go to next
    
    else 
    
      ## if none of the above conditions are true, execute this block
    
    fi

    Voici un exemple de script bash qui utilise l’instruction if-else :

    #!/bin/bash
    
    read -p "Enter the number: " num
    
    mod=$(($num%2))
    
    if [ $mod -eq 0 ]; then
    	echo "Number $num is even"
    else
    	echo "Number $num is odd"
    fi

    Lancez-le et vous devriez voir un résultat comme celui-ci :

    Exécution d'un script bash qui vérifie le nombre pair impair

    Le -eq est appelé condition de test ou opérateur conditionnel. Il existe de nombreux opérateurs de ce type pour vous offrir différents types de comparaison :

    Voici les opérateurs de condition de test que vous pouvez utiliser pour la comparaison numérique :

    Condition Équivalent à vrai quand
    $a -lt $b $a de moins than $b)
    $a -gt $b $a > $b ($a est gréchaud than $b)
    $a -le $b $a moins ou equal que $b)
    $a -ge $b $a >= $b ($a est gou equal que $b)
    $a -eq $b $a est égal à $b
    $a -ne $b $a n’est pas égal à $b

    Si vous comparez des chaînes, vous pouvez utiliser ces conditions de test :

    Condition Équivalent à vrai quand
    “$a” = “$b” $a est identique à $b
    “$a” == “$b” $a est identique à $b
    “$a” != “$b” $a est différent de $b
    -z “$a” $a est vide

    Il existe également des conditions pour la vérification du type de fichier :

    Condition Équivalent à vrai quand
    -f $a $a est un fichier
    -d $a $a est un répertoire
    -L $a $a est un lien

    🚧

    Portez une attention particulière à l’espace. Il doit y avoir un espace entre les parenthèses ouvrante et fermante et les conditions. De même, l’espace doit être avant et après les opérateurs conditionnels (-le, == etc).

    Bash Basics Series #7 : Déclaration If Else

    Si ceci, alors cela autre chose d’autre. Ça n’a pas de sens ? Il le sera après avoir appris les instructions if-else dans les scripts shell bash.

    8. Utiliser des boucles dans les scripts bash

    Bash supporte trois types de boucles : for, while et until.

    Voici un exemple de pour la boucle:

    #!/bin/bash
    
    for num in {1..10}; do
    	echo $num
    done

    Exécutez-le et vous verrez le résultat suivant :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    Si vous prenez l’exemple précédent, il peut être réécrit en utilisant le boucle while comme ça:

    #!/bin/bash
    
    num=1
    while [ $num -le 10 ]; do
    	echo $num
    	num=$(($num+1))
    done

    Et la même chose peut être réécrite en utilisant le jusqu’à la boucle:

    #!/bin/bash
    
    num=1
    until [ $num -gt 10 ]; do
    	echo $num
    	num=$(($num+1))
    done

    💡

    Les boucles while et until sont assez similaires. La différence est que la boucle while s’exécute tant que la condition est vraie et la boucle until s’exécute tant que la condition est fausse.

    Bases de Bash #8 : Boucles For, While et Until

    Dans l’avant-dernier chapitre de la série Bash Basics, découvrez les boucles for, while et until.

    9. Utilisation des fonctions dans les scripts bash

    Le shell Bash prend en charge l’utilisation de fonctions afin que vous n’ayez pas à écrire le même morceau de code encore et encore.

    Voici la syntaxe générique pour déclarer une fonction bash :

    function_name() {
      commands
    }

    Voici un exemple de script bash qui utilise une fonction avec des arguments :

    #!/bin/bash
    
    sum() {
    	sum=$(($1+$2))
    	echo "The sum of $1 and $2 is: $sum"
    }
    
    echo "Let's use the sum function"
    sum 1 5

    Si vous exécutez le script, vous verrez le résultat suivant :

    Let's use the sum function
    The sum of 1 and 5 is: 6

    Bash Basics Series #9 : Fonctions dans Bash

    Apprenez tout sur les fonctions dans le dernier chapitre de la série Bash Basics.

    Où aller en partant d’ici?

    Ce n’est qu’un aperçu. Ce tutoriel de script bash n’est qu’une introduction. Il y a beaucoup plus de scripts bash et vous pouvez les explorer lentement et progressivement.

    La référence GNU bash est une excellente ressource en ligne pour nettoyer vos doutes bash.

    Manuel de référence de Bash

    Manuel de référence de Bash

    ##En dehors de cela, vous pouvez télécharger ce livre gratuit pour en savoir plus sur les trucs bash qui ne sont pas couverts ici :

    Une fois que vous avez suffisamment de connaissances sur les bases de bash, vous pouvez apprendre les scripts bash avancés avec ce livre gratuit :

    Ces deux livres ont au moins dix ans, mais vous pouvez toujours les utiliser pour apprendre le bash.

    💬 J’espère que ce tutoriel vous plaira comme point de départ de votre apprentissage du script bash. Veuillez fournir vos commentaires dans la section des commentaires.

    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