Boucles-Bash-
Boucles-Bash-

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.

ConceptExemple 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 continuefor 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.

ConceptExemple concret
DĂ©finition d’une fonctionsay_hello() { echo "Bonjour, $1 !" } say_hello "Alice"
Variables locales et globalesma_fonction() { local message="Locale" echo "Message interne : $message" } message="Globale" ma_fonction echo "Message externe : $message"
Retour de valeuraddition() { local sum=$(( $1 + $2 )) echo $sum } result=$(addition 4 5) echo "Résultat : $result"
Charger un fichier de fonctions externessource ./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.

CommandeDescription & Exemple
echoAffiche du texte Ă  l’écran.echo "Hello World"
readLit une entrée utilisateur.read -p "Entrez votre nom : " nom
exitTermine le script avec un code retour.exit 0
cdChange le répertoire courant.cd /var/log
evalExécute une commande contenue dans une variable.cmd="ls -l"; eval $cmd
sourceExécute un script dans le contexte courant.source ./config.sh
declareDéfinit des variables avec options (-a, -A, -i
).
setAffiche ou configure le comportement du shell.
typeIndique 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

Boucles-Bash-

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


đŸ§© Exercices pratiques

Exercice 1Exercice 2Exercice 3Exercice 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 ?

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

    Alors tu en pense quoi de cette article ? Dis-moi tous..