Introduction
Vous avez déjà manipulé des variables, testé des conditions⊠mais votre script Bash reste linéaire ?
Câest ici que les boucles, fonctions et commandes natives entrent en jeu : elles transforment un simple script en vĂ©ritable moteur dâautomatisation.
GrĂące Ă elles, vous allez pouvoir rĂ©pĂ©ter des actions, structurer votre code et interagir intelligemment avec le systĂšme ou lâutilisateur.
Dans cet article, on plonge dans le cĆur de la logique procĂ©durale de Bash, avec des exemples concrets, des cas pratiques, et un peu de fun (parce que oui, les boucles peuvent ĂȘtre drĂŽlement puissantes).
đ Les boucles en Bash : automatiser les tĂąches rĂ©pĂ©titives
Les boucles permettent de rĂ©pĂ©ter une action tant quâune condition est remplie. Câest la base de lâautomatisation.
| Concept | Exemple concret |
|---|---|
| Boucle for Parcourt une liste de valeurs, un intervalle ou le rĂ©sultat dâune commande. | for user in alice bob charlie; do echo "CrĂ©ation de lâutilisateur : $user" done |
| Boucle for arithmétique Permet de répéter un bloc un certain nombre de fois. | for ((i=1; i<=5; i++)); do echo "Itération $i" done |
| Boucle while RĂ©pĂšte tant quâune condition est vraie. | count=1 while [ $count -le 3 ]; do echo "Tentative $count" ((count++)) done |
| Boucle until Fait lâinverse de while : sâexĂ©cute jusquâĂ ce que la condition devienne vraie. | until ping -c1 8.8.8.8 &>/dev/null; do echo "Attente de la connexion rĂ©seau..." sleep 2 done echo "RĂ©seau disponible !" |
| break et continue | for i in {1..5}; do if [ $i -eq 3 ]; then echo "On saute 3 !" continue fi if [ $i -eq 4 ]; then echo "On sort de la boucle à 4." break fi echo "Itération $i" done |
âïž Les fonctions Bash : structurer et rĂ©utiliser ton code
Les fonctions sont au Bash ce que les engrenages sont à une montre : elles font tourner la logique de maniÚre ordonnée.
Elles permettent de réutiliser du code, éviter la redondance et rendre un script plus lisible.
| Concept | Exemple concret |
|---|---|
| DĂ©finition dâune fonction | say_hello() { echo "Bonjour, $1 !" } say_hello "Alice" |
| Variables locales et globales | ma_fonction() { local message="Locale" echo "Message interne : $message" } message="Globale" ma_fonction echo "Message externe : $message" |
| Retour de valeur | addition() { local sum=$(( $1 + $2 )) echo $sum } result=$(addition 4 5) echo "Résultat : $result" |
| Charger un fichier de fonctions externes | source ./lib.sh hello_world |
Astuce :
Utilisez des fichiers dédiés (ex: functions.sh) pour regrouper vos fonctions, et chargez-les avec source pour rendre vos scripts modulaires.
đ§± Commandes natives (built-ins) Bash : les outils internes
Les commandes natives, aussi appelées built-ins, sont des fonctions intégrées directement à Bash.
Elles ne nĂ©cessitent pas dâexĂ©cutable externe, donc sont plus rapides et lĂ©gĂšres.
| Commande | Description & Exemple |
|---|---|
echo | Affiche du texte Ă lâĂ©cran.echo "Hello World" |
read | Lit une entrée utilisateur.read -p "Entrez votre nom : " nom |
exit | Termine le script avec un code retour.exit 0 |
cd | Change le répertoire courant.cd /var/log |
eval | Exécute une commande contenue dans une variable.cmd="ls -l"; eval $cmd |
source | Exécute un script dans le contexte courant.source ./config.sh |
declare | DĂ©finit des variables avec options (-a, -A, -iâŠ). |
set | Affiche ou configure le comportement du shell. |
type | Indique si une commande est interne ou externe.type cd â cd is a shell builtin |
đ§° Cas pratiques et automatisations
đč Exemple 1 : GĂ©nĂ©ration dâun rapport automatique
#!/bin/bash
generate_report() {
local report="/tmp/report.txt"
echo "Date du rapport : $(date)" > $report
echo "Uptime :" >> $report
uptime >> $report
echo "Espace disque :" >> $report
df -h >> $report
echo "Rapport généré dans $report"
}
generate_report
đč Exemple 2 : Menu interactif utilisateur
while true; do
echo "=== Menu principal ==="
echo "1) Afficher la date"
echo "2) Lister les fichiers"
echo "3) Quitter"
read -p "Votre choix : " choix
case $choix in
1) date ;;
2) ls -lh ;;
3) echo "Au revoir !"; break ;;
*) echo "Choix invalide." ;;
esac
done
đŹ Retour dâexpĂ©rience du lecteur

Quelle est votre boucle préférée ? Avez-vous une astuce de fonction Bash à partager ?
Dites-le dans les commentaires et Ă©changeons nos pratiques dâautomatisation.
đ Recommandations et autres solutions
- đ Variables, commentaires et shebang en Bash
- đ OpĂ©rateurs et structures conditionnelles
- đ Documentation : GNU Bash Reference Manual
đ§© Exercices pratiques
| Exercice 1 | Exercice 2 | Exercice 3 | Exercice 4 |
|---|---|---|---|
| Lire un fichier ligne par ligne et compter le nombre de lignes. | CrĂ©er une fonction backup() qui archive un dossier donnĂ© avec la date du jour. | CrĂ©er un menu interactif qui exĂ©cute des commandes selon le choix utilisateur. | Ăcrire une boucle qui surveille la taille dâun log et le vide sâil dĂ©passe 1 Mo. |
đ§© Conclusion
Les boucles, fonctions et commandes natives constituent le noyau dur du scripting Bash.
Elles permettent dâĂ©crire des scripts plus propres, rĂ©utilisables et performants, capables dâautomatiser les tĂąches les plus variĂ©es.
La suite ? On plonge dans la gestion des tableaux et structures avancĂ©es â un vrai pas vers des scripts âintelligentsâ.
Et vous, comment gérez-vous vos boucles et fonctions en Bash ? Partagez votre expérience en commentaire !
đ§ Solutions des exercices
1ïžâŁ Lire un fichier ligne par ligne
count=0
while read -r line; do
((count++))
done < monfichier.txt
echo "Le fichier contient $count lignes."
2ïžâŁ Fonction de sauvegarde
backup() {
local src="$1"
local dest="/backup/$(basename "$src")_$(date +%Y%m%d).tar.gz"
tar -czf "$dest" "$src"
echo "Backup créé : $dest"
}
backup /etc
3ïžâŁ Menu interactif
while true; do
echo "1) Date"
echo "2) Uptime"
echo "3) Quitter"
read choix
case $choix in
1) date ;;
2) uptime ;;
3) break ;;
esac
done
4ïžâŁ Surveillance de log
logfile="/var/log/syslog"
maxsize=1048576 # 1 Mo
while true; do
size=$(stat -c%s "$logfile")
if (( size > maxsize )); then
echo "Taille du log trop grande, vidage..."
> "$logfile"
fi
sleep 10
done
âïž Informations SEO
- Mot-clé principal : boucles Bash
- Mots-clés secondaires : fonctions Bash, commandes natives, scripting, automatisation, read, for loop, while loop
- Slug :
boucles-fonctions-commandes-bash - Méta-description : Apprenez à maßtriser les boucles Bash, fonctions et commandes natives pour automatiser efficacement vos scripts.
- Format : Projet
- Catégorie : Scripting Master Project Series
- Ătiquette : sh
Tout est prĂȘt pour la mise en brouillon WordPress.
Souhaite-tu que je connecte lâagent WordPress pour envoyer lâarticle sur ton site msinfra.fr (statut brouillon) avant validation publique ?
