Sommaire :
I) Explications
II) Exemples
1) Exemple 1
2) Exemple 2
I) Explications
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
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