25 exemples de scripts Bash sous Linux pour bien démarrer
Aug 06, 2026
/
Faradilla A.
/
10 minutes de lecture
Bash, ou « Bourne-again shell », est l’un des shells et langages de commande les plus populaires auprès des utilisateurs de VPS Linux. Lancé en 1989, il est depuis devenu le shell par défaut de la plupart des distributions Linux.
Les scripts Bash permettent aux utilisateurs et aux administrateurs système d’automatiser des processus et d’économiser des centaines d’heures de travail manuel. Il est également important de noter que Bash est disponible sous Windows et macOS.
Ce tutoriel présente les bases de l’écriture de scripts Bash. Il rassemble plus de vingt exemples de scripts Bash pour vous aider à faire vos premiers pas avec Bash.

À quoi servent les scripts Bash ?
Avant d’examiner les cas d’utilisation des scripts Bash, voyons ce que sont Bash et un script Bash.
Bash est un interpréteur de ligne de commande qui s’exécute dans une fenêtre de terminal et permet de gérer et d’exécuter des commandes shell. Un script Bash, aussi appelé script shell, est un ensemble de commandes destinées à être exécutées sur un système Linux. Un fichier qui contient ces instructions est appelé un script Bash.
En pratique, l’interpréteur Bash lit le script et exécute les commandes qu’il contient. Par exemple, un utilisateur Linux peut lancer des centaines de commandes d’un simple clic au lieu de les saisir une par une. Les scripts Bash sont donc particulièrement utiles pour gagner en productivité, automatiser des tâches et éviter les opérations répétitives.
25 exemples de scripts Bash
Dans la section suivante, découvrez 25 exemples de scripts Bash parmi les plus courants, notamment pour manipuler des variables et afficher différentes valeurs. Nous verrons également les fonctions, les tableaux, les boucles et bien d’autres concepts.
1. Hello World
Hello World est l’exemple de script Bash le plus simple pour débuter. Nous allons créer une nouvelle variable nommée learningbash, puis afficher le texte « Hello World ». Commencez par créer un nouveau fichier de script Bash avec l’éditeur de texte de votre choix :
nano hello.sh
Collez le code suivant :
#!/bin/bash #Creates a new variable with a value of "Hello World" learningbash="Hello World" echo $learningbash

La première ligne (#!/bin/bash) est présente dans tous les scripts Bash. Elle indique au système d’exploitation d’utiliser l’interpréteur Bash pour exécuter le script.
2. Commande echo
La commande Bash echo permet d’afficher du texte ainsi que la valeur des variables. Dans cet exemple, nous allons voir comment les guillemets influencent son comportement. Commencez par créer un nouveau fichier de script Bash :
nano echo.sh
Cet exemple crée une nouvelle variable et affiche sa valeur avec différents types de guillemets.
#!/bin/bash provider="Hostinger" echo 'The best hosting provider is $provider' echo "The best hosting provider is $provider"

Comme vous pouvez le constater, lorsque la commande Bash echo est utilisée avec des guillemets doubles (“), elle affiche la valeur de la variable. En revanche, avec des guillemets simples (‘), elle affiche uniquement le nom de la variable.
3. Commande sleep
La commande sleep suspend temporairement l’exécution d’un script Bash pendant une durée définie. Commencez par créer un nouveau fichier de script Bash :
nano sleep.sh
Collez ensuite le script suivant :
#!/bin/bash sleep 10 && echo “I’ve been sleeping for 10 seconds, I want more” && sleep 10 && echo “I’m done sleeping, thanks!”

L’exemple ci-dessus commence par une commande Bash sleep, qui suspend l’exécution du script pendant 10 secondes. Nous la combinons ensuite avec la commande echo afin que le script attende 10 secondes, affiche un message, patiente de nouveau pendant 10 secondes, affiche un second message, puis termine son exécution.
Conseil de pro
Vous pouvez interrompre un script Bash à tout moment en appuyant sur Ctrl + C, sans attendre la fin de son exécution.
4. Commande wait
wait est une commande Linux intégrée qui attend la fin d’un processus en cours d’exécution. Elle s’utilise avec un identifiant de processus (PID) ou un identifiant de tâche spécifique.
Voici comment créer un script Bash utilisant la commande wait. Commencez par créer un nouveau fichier Bash :
nano wait.sh
Collez le code suivant :
#!/bin/bash wait 1234 echo “Done”
Important ! Si aucun identifiant de tâche n’est fourni, la commande wait attend la fin de toutes les tâches filles exécutées en arrière-plan.
5. Commentaires
Vous pouvez facilement ajouter des commentaires à un script Bash à l’aide du symbole #. Cette fonctionnalité est particulièrement utile si votre script est long et que certaines lignes nécessitent des explications.
Commencez par créer un nouveau script Bash :
nano comments.sh
Collez ensuite le code suivant :
#!/bin/bash # Define a variable named Hostinger provider="Hostinger" # Print out the following text echo 'The best hosting provider is $provider' # Print out the following text with $provider variable value echo "The best hosting provider is $provider"

Gardez à l’esprit que les commentaires d’un script Bash ne sont visibles que dans un éditeur de texte.
6. Lire une entrée utilisateur
Pour lire une entrée utilisateur, nous allons utiliser la commande Bash read. Commencez par créer un nouveau fichier de script Bash :
nano read.sh
Collez ensuite le script ci-dessous :
#!/bin/bash echo "What is your age?" read age echo "Wow, you look younger than $age years old"
Dans cet exemple, l’utilisateur saisit son âge, puis la commande echo affiche le message correspondant.
7. Les boucles
Les boucles sont des éléments essentiels dans de nombreux langages de programmation. En Bash, une boucle est un ensemble d’instructions qui se répètent jusqu’à ce qu’une condition définie soit remplie. Commencez par créer un script Bash utilisant une boucle :
nano whileloop.sh
Collez ensuite le code suivant :
#!/bin/bash n=0 while : do echo Countdown: $n ((n++)) done
Le script affiche un compte à rebours à l’infini jusqu’à ce que vous l’interrompiez en appuyant sur Ctrl + C.
Maintenant que nous avons testé la boucle while, passons à la boucle for. Créez un fichier Bash pour cet exemple :
nano forloop.sh
Ajoutez-y le script suivant :
#!/bin/bash for (( n=2; n<=10; n++ )) do echo "$n seconds" done

Le script affiche les nombres de 2 à 10 en ajoutant le mot « seconds » à chacun d’eux.
8. Créer un tableau
Un tableau Bash est une structure de données permettant de stocker des informations sous forme indexée. Il est particulièrement utile pour stocker et récupérer rapidement de grandes quantités de données. L’une de ses particularités est que, contrairement aux tableaux de nombreux autres langages de programmation, un tableau Bash peut contenir différents types d’éléments. Par exemple, un tableau Bash peut stocker à la fois des chaînes de caractères et des nombres.
Créez un nouveau fichier dans le répertoire actuel :
nano array.sh
Combinez la boucle for vue précédemment avec un nouveau tableau indexé :
#!/bin/bash
# Create an indexed array
IndexedArray=(egg burger milk)
#Iterate over the array to get all the values
for i in "${IndexedArray[@]}";do echo "$i";done
Le script parcourt le tableau IndexedArray et affiche chacune de ses valeurs.
9. Les instructions conditionnelles
L’instruction conditionnelle la plus courante est if. Facile à écrire et à comprendre, elle est également utilisée dans des scripts shell plus avancés.
Commencez par créer un nouveau fichier Bash :
nano if.sh
Collez le code suivant :
#!/bin/bash
salary=1000
expenses=800
#Check if salary and expenses are equal
if [ $salary == $expenses ];
then
echo "Salary and expenses are equal"
#Check if salary and expenses are not equal
elif [ $salary != $expenses ];
then
echo "Salary and expenses are not equal"
fiCe script crée deux variables, puis vérifie si leurs valeurs sont identiques.
10. Fonctions
Une fonction Bash est un ensemble de commandes que vous pouvez réutiliser plusieurs fois dans un script Bash. Créez un nouveau fichier :
nano function.sh
Collez ensuite le code suivant, qui crée une fonction « Hello World » simple :
#!/bin/bash
hello () {
echo 'Hello World!'
}
hello11. Afficher la longueur d’une chaîne de caractères
Il existe plusieurs façons de calculer la longueur d’une chaîne de caractères en Bash. Nous allons voir la plus simple. Créez un fichier nommé stringlength.sh :
nano stringlength.sh
Ajoutez-y le code suivant :
#!/bin/bash
# Create a new string
mystring="lets count the length of this string"
i=${#mystring}
echo "Length: $i"Ici, l’opérateur # permet d’obtenir la longueur de la chaîne stockée dans la variable.
12. Extraire une partie d’une chaîne de caractères
Si vous devez extraire une partie d’une chaîne de caractères, vous pouvez utiliser les outils d’extraction de Bash. Commencez par créer un nouveau script Bash :
nano extractstring.sh
Le script suivant contient cinq valeurs, dont quatre sont des chaînes de caractères. Dans cet exemple, nous allons extraire uniquement la valeur numérique. Pour cela, nous utilisons la commande cut. Nous lui indiquons d’abord que les valeurs sont séparées par une virgule à l’aide de l’option -d, puis nous lui demandons d’extraire la cinquième valeur avec l’option -f.
#!/bin/bash cut -d , -f 5 <<< "Website,Domain,DNS,SMTP,5005"
Dans cet autre exemple, la chaîne contient également des chiffres. Nous allons utiliser les commandes expr et substr pour extraire uniquement le texte « Hostinger ».
#!/bin/bash expr substr "458449Hostinger4132" 7 9
13. Rechercher et remplacer du texte dans une chaîne de caractères
La recherche et le remplacement constituent une autre opération utile sur les chaînes de caractères en Bash. Créez un fichier nommé findreplace.sh :
nano findreplace.sh
Collez ensuite le script Bash suivant :
#!/bin/bash
first="I drive a BMW and Volvo"
second="Audi"
echo "${first/BMW/"$second"}" 
La recherche et le remplacement ne nécessitent aucune commande spécifique : tout repose sur la manipulation des chaînes de caractères.
14. Concaténer des chaînes de caractères
La concaténation consiste à ajouter une chaîne de caractères à la fin d’une autre. Commencez par créer le fichier concatenation.sh.
nano concatenation.sh
Voici l’exemple le plus simple :
#!/bin/bash firststring="The secret is..." secondstring="Bash" thirdstring="$firststring$secondstring" echo "$thirdstring"
Ce script concatène les valeurs des variables firststring et secondstring afin de créer une nouvelle variable nommée thirdstring.
Voici un exemple un peu plus avancé :
#!/bin/bash firststring="The secret is..." firststring+="Bash" echo "$firststring"
Ce script utilise l’opérateur += pour concaténer des chaînes de caractères. Avec cette méthode, une seule variable suffit pour ajouter une nouvelle chaîne à la précédente.
15. Vérifier si un nombre est pair ou impair
Il est facile de déterminer si un nombre est pair ou impair à l’aide de l’instruction if et de quelques opérations mathématiques simples. Créez un fichier nommé evenoddnumbers.sh :
nano evenoddnumbers.sh
Le script utilise la commande read pour récupérer la saisie de l’utilisateur, puis calcule le reste de la division par 2. Si ce reste est égal à 0, le nombre est pair.
#!/bin/bash read -p "Enter a number and I will check if its odd or even " mynumber if [ $((mynumber%2)) -eq 0 ] then echo "Your number is even" else echo "Your number is odd." fi
16. Calculer la factorielle d’un nombre
La factorielle d’un nombre correspond au produit de tous les entiers positifs inférieurs ou égaux à ce nombre. Par exemple, la factorielle de 5 est égale à 120 :
5! = 5*4*3*2*1 = 120
Les scripts de calcul de factorielle sont particulièrement utiles pour les personnes qui découvrent la récursivité. Commencez par créer un fichier factorial.sh :
factorial.sh
Le script suivant demande à l’utilisateur de saisir un nombre, puis utilise une boucle for pour calculer sa factorielle.
#!/bin/bash echo Enter the number you want to get factorial for read mynumber factorial=1 for ((i=1;i<=mynumber;i++)) do factorial=$(($factorial*$i)) done echo $factorial

17. Créer des répertoires
Créer des répertoires avec Bash est très simple, même lorsque vous devez en générer un grand nombre rapidement. Dans cet exemple, nous allons utiliser un script Bash pour créer plusieurs répertoires contenant chacun les mêmes sous-répertoires.
Commencez par créer un fichier nommé directories.sh :
nano directories.sh
Collez ensuite le code suivant :
#!/bin/bash
mkdir -p {Math,English,Geography,Arts}/{notes,examresults,portfolio}Le script crée quatre répertoires principaux : Math, English, Geography et Arts. Il crée également les sous-répertoires notes, examresults et portfolio dans chacun d’eux.
Si vous remplacez le symbole / par _, le script devient :
#!/bin/bash
mkdir -p {Math,English,Geography,Arts}_{notes,examresults,portfolio}Voici le résultat qui affiche la fusion des deux répertoires :

18. Lire des fichiers
Pour lire un fichier en Bash, commencez par créer un fichier d’exemple à l’aide de la commande suivante :
nano mysamplefile.txt
Ajoutez-y le contenu suivant :
Out of all scripting languages, bash is the most popular one. It allows programmers to run scripts effortlessly in a variety of Linux distros.
Créez ensuite le script Bash :
nano readfiles.sh
Ajoutez-y les lignes suivantes :
#!/bin/bash myvalue=`cat mysamplefile.txt` echo "$myvalue"
L’exécution du script produit le résultat suivant :

19. Afficher un fichier avec sa numérotation de lignes
Nous allons afficher le contenu d’un fichier en numérotant chaque ligne. Commencez par créer le fichier suivant :
nano cars.txt
Dans cet exemple, ajoutez les marques de voitures suivantes :
Audi BMW Bentley Maserati Seat Volvo
Enregistrez le fichier, puis créez un nouveau script Bash :
nano printlines.sh
Collez ensuite le code suivant :
#!/bin/bash myfile='cars.txt' i=1 while read lines; do echo "$i : $lines" i=$((i+1)) done < $myfile

Le contenu du fichier cars.txt est affiché avec un numéro devant chaque ligne grâce à la boucle while.
20. Supprimer des fichiers
Pour supprimer un fichier existant, vous pouvez utiliser une instruction if afin de vérifier qu’il existe avant de le supprimer. Commencez par créer un script Bash :
nano deletefiles.sh
Le script suivant crée un fichier nommé cars.txt, vérifie ensuite qu’il existe à l’aide d’une instruction if, puis le supprime.
#!/bin/bash myfile='cars.txt' touch $myfile if [ -f $myfile ]; then rm cars.txt echo "$myfile deleted" fi
21. Vérifier si un fichier existe
Pour vérifier si un fichier existe, vous pouvez utiliser un test conditionnel. Dans cet exemple, nous allons utiliser une instruction if avec l’option -f, qui permet de vérifier qu’un fichier existe et qu’il s’agit d’un fichier ordinaire. Commencez par créer le fichier de script suivant :
nano exists.sh
Copiez et collez le script suivant :
#!/bin/bash MyFile=cars.txt if [ -f "$MyFile" ]; then echo "$MyFile exists." else echo "$MyFile does not exist." fi
L’exécution du script produit le résultat suivant :

22. Vérifier les inodes et l’utilisation du disque
Les inodes représentent des unités de données sur un serveur physique ou virtuel. Chaque fichier texte, vidéo, répertoire, fichier HTML ou script correspond à un inode. Nous allons vérifier le nombre d’inodes dans un répertoire, car un trop grand nombre peut ralentir sensiblement le système. Commencez par créer le script Bash suivant :
nano inodesdisk.sh
Collez le code suivant. Il affiche les inodes par ordre décroissant ainsi que l’utilisation du disque dans un répertoire donné :
#!/bin/bash find . -printf "%h\n" | cut -d/ -f-2 | sort | uniq -c | sort -rn du -shc * | sort -rh
Le résultat s’affiche de la manière suivante dans le terminal :

Dans cet exemple, le répertoire contient 15 inodes et l’ensemble des fichiers occupe 20 Ko.
23. Envoyer un e-mail
Il est également possible d’envoyer des e-mails à l’aide de scripts Bash. Pour cela, vous devez d’abord disposer d’un agent de transport de courrier (MTA) fonctionnel. Sous Ubuntu 22.04, installez-le avec la commande suivante :
sudo apt-get install mailutils
Une fois l’agent de transport de courrier installé, créez un nouveau script Bash :
nano mail.sh
Ajoutez-y le code suivant :
#!/bin/bash Recipient="myawesomeinbox@domain.tld" Mysubject="Regarding our talk" Mymessage="Call me" `mail -s $Mysubject $Recipients <<< $Mymessage`
Important ! Ce script est uniquement fourni à des fins de test, car il ne fonctionne généralement pas avec des services tels que Gmail. Nous vous recommandons d’utiliser PHPMailer à la place.
24. Mettre à jour les paquets
Il est essentiel de maintenir le système et toutes ses applications à jour. Vous pouvez créer un script Bash pour automatiser cette tâche. Notez que ce script nécessite les privilèges root. Commencez par créer un script Bash :
nano maintenance.sh
Ajoutez-y les lignes suivantes :
#!/bin/bash apt-get update apt-get upgrade
Lorsque vous exécutez ce script, faites-le précéder de la commande sudo :
sudo bash maintenance.sh
Important ! Le gestionnaire de paquets apt est utilisé uniquement sur les distributions basées sur Debian. Si vous utilisez une autre distribution, adaptez la commande en conséquence.
25. Afficher les informations du serveur
Le script suivant affiche plusieurs informations importantes sur le serveur : la date du système, sa durée de fonctionnement, ainsi que les statistiques d’utilisation de la mémoire et du réseau. Commencez par créer un nouveau fichier :
nano system.sh
Ajoutez-y le script suivant :
#!/bin/bash echo "Date" date echo "Uptime" uptime echo "Memory Usage" free -m echo "Network Usage" ip a

Conclusion
Les scripts Bash sous Linux sont particulièrement utiles pour regrouper des suites de commandes complexes dans un seul script. Même si vous utilisez Linux de manière occasionnelle, vous pouvez gagner du temps en automatisant des tâches simples, comme la mise à jour des paquets ou l’utilisation de la commande sleep.
Dans ce tutoriel, nous avons présenté les bases des scripts Bash et expliqué comment les utiliser pour automatiser des tâches et gagner en productivité. Nous avons également rassemblé 25 exemples de scripts Bash simples que vous pouvez tester.
Nous espérons que cet article vous a permis de mieux comprendre le fonctionnement des scripts Bash.
Tout le contenu des tutoriels de ce site est soumis aux normes éditoriales et aux valeurs rigoureuses de Hostinger.
Commentaires
0 responses