Les boucles while en Bash

Les boucles while permettent d’exécuter un bloc de commandes tant qu’une condition reste vraie.
Elles sont indispensables pour gérer les saisies utilisateur, surveiller des fichiers, traiter des flux continus ou répéter des actions jusqu’à un état précis.


1. Syntaxe générale

while CONDITION; do
  # commandes répétées
done

Explications


2. Exemple simple : compteur

i=1
while [[ $i -le 5 ]]; do
  echo "i = $i"
  ((i++))
done

Explications


3. Boucle avec saisie utilisateur

reponse=""
while [[ $reponse != "oui" ]]; do
  read -p "Veux-tu continuer ? (oui/non) " reponse
done

Explications


4. Boucle infinie utile

while true; do
  date
  sleep 1
done

Explications


5. While + tests avec [[ ]]

nombre=0
while [[ $nombre -lt 1 || $nombre -gt 10 ]]; do
  read -p "Entre un nombre entre 1 et 10 : " nombre
done

Explications


6. Attendre qu’un fichier existe

fichier="/tmp/signal"

echo "En attente de la création de $fichier..."

while [[ ! -f "$fichier" ]]; do
  sleep 1
done

echo "Le fichier existe."

Explications


7. Lire un fichier ligne par ligne

while read -r ligne; do
  echo "Ligne : $ligne"
done < mon_fichier.txt

Explications


8. Lire plusieurs colonnes

while read -r nom age; do
  echo "$nom a $age ans."
done < users.txt

Explications


9. break et continue

Exemple avec break

i=1
while [[ $i -le 10 ]]; do
  if [[ $i -eq 5 ]]; then
    break
  fi
  echo "i = $i"
  ((i++))
done

Explication : la boucle s’interrompt dès que i vaut 5.

Exemple avec continue

i=0
while (( i < 5 )); do
  ((i++))
  if [[ $i -eq 3 ]]; then
    continue
  fi
  echo "i = $i"
done

Explication : continue saute l’itération pour i = 3.


10. Condition arithmétique avec (( ))

i=0
while (( i < 5 )); do
  echo "i = $i"
  ((i++))
done

Explications