Boucle until "Jusqu’à ce que"
>>> Code BASH
Version PDF

Dans cette astuce, nous apprendrons à utiliser la boucle "Until" en faisant un compteur.


Sommaire :

I) Explications
II) Exemples
1) Exemple 1
2) Exemple 2


I) Explications

Haut de page

Pour définir une variable, suivez les instructions suivantes :

 Créez un nouveau script en tapant la commande :

vim script-5.sh

 Commencez le script par écrire le type de code utilisé :

#!/bin/bash

Le début de la boucle commence par "until" et se termine par "done". Voici l’architecture de la boucle :

until [ test ]
do
	Commandes exécutées jusqu'à ce que test soit vrai
done

On peut expliquer la boucle comme cela :

Jusqu’à ce que test soit vrai
FAIRE
— -> effectuer une action
recommencer

II) Exemples

Haut de page

1) Exemple 1

 Pour le script, je vais faire un compteur

  • On va demander à l’utilisateur de définir un nombre de secondes.
  • On fixe la valeur de la variable "compteur" à "0".
    • A chaque cycle de la boucle, nous allons attendre 1 seconde avec la commande "sleep".
    • A chaque cycle de la boucle, on incrémente la variable "compteur" de "1".
    • A chaque cycle de la boucle, on affiche le nombre de secondes.
  • La boucle va s’arrêter lorsque le nombre de secondes définit par l’utilisateur soit écoulé.

Pour information, les différents tests possibles sont les mêmes que pour la condition IF

 Tapez les lignes suivantes :

compteur=0

read -p 'Combien de secondes voulez-vous patienter ? ' seconde

until [ $compteur = $seconde ]
do
        sleep 1
        ((compteur++))
        echo -e "\ncompteur : $compteur"
done

 Exécutez le script avec la commande "bash script-9.sh". Vous devez obtenir ceci :

root@debian:~# bash script-9.sh
Combien de secondes voulez-vous patienter ? 5

compteur : 1

compteur : 2

compteur : 3

compteur : 4

compteur : 5

root@debian:~#

2) Exemple 2

 Deuxième exemple :

  • Jusqu’à ce que le fichier "STOP" soit créé dans le même répertoire que le script.
    • On affiche le message "Coucou"
    • On attend 1 seconde

 Voici le script :

until [ -e STOP ]
        do
        echo "Coucou"
        sleep 1
done

 Exécutez le script, vous devez obtenir ceci :
 Après quelques secondes, créez via une autre fenêtre le fichier "STOP". Le script va s’arrêter.

root@debian:~# bash script-11.sh
Coucou
Coucou
Coucou
 
 
 
 
 
Commentaires :