Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

tout en

bash peut exprimer une idée similaire. Disons que nous voulions afficher cinq nombres en séquence-


ordre tial de un à cinq. une bash le script peut être construit comme suit :


#! / Bin / bash


# while-count : affiche une série de nombres count=1

while [[ $count -le 5 ]]; faire echo $count count=$((count + 1))

fait

echo "Terminé."

#! / Bin / bash


# while-count : affiche une série de nombres count=1

while [[ $count -le 5 ]]; faire echo $count count=$((count + 1))

fait

echo "Terminé."


Lorsqu'il est exécuté, ce script affiche les éléments suivants :



[moi@linuxbox ~]$ tout-compte

1

2

3

4

5

Fini.

[moi@linuxbox ~]$ tout-compte

1

2

3

4

5

Fini.


La syntaxe du tout en la commande est:

tout en commandes; fais commandes; terminé

Comme if, tout en évalue l'état de sortie d'une liste de commandes. Tant que l'état de sortie est zéro, il exécute les commandes à l'intérieur de la boucle. Dans le script ci-dessus, la variable compter est créé et reçoit une valeur initiale de 1. Le tout en La commande évalue l'état de sortie du [[]] commande composée. Tant que le [[]] La commande renvoie un état de sortie égal à zéro, les commandes de la boucle sont exécutées. A la fin de chaque cycle, le [[]] la commande est répétée. Après cinq itérations de la boucle, la valeur de compter est passé à 6, le [[]] La commande ne renvoie plus un état de sortie de zéro et la boucle se termine. Le programme continue avec l'instruction suivante après la boucle.

Nous pouvons utiliser un boucle tout en pour améliorer le lire-menu programme du chapitre précédent :


#! / Bin / bash


# while-menu : un programme d'information système piloté par menu

#! / Bin / bash


# while-menu : un programme d'information système piloté par menu


RETARD=3 # Nombre de secondes pour afficher les résultats


while [[ $REPLY != 0 ]]; faire

clair

chat <<- _EOF_

Veuillez sélectionner:


1. Afficher les informations système

2. Afficher l'espace disque

3. Afficher l'utilisation de l'espace domestique

0. Quitter


_EOF_

read -p "Entrer la sélection [0-3] > "


si [[ $REPLY =~ ^[0-3]$ ]] ; alors si [[ $REPLY == 1 ]]; alors

echo "Nom d'hôte : $HOSTNAME"

dormir $DÉLAI

fi

if [[ $REPLY == 2 ]]; puis df -h

dormir $DÉLAI

fi

if [[ $REPLY == 3 ]]; alors

if [[ $(id -u) -eq 0 ]] ; alors

echo "Utilisation de l'espace d'accueil (tous les utilisateurs)" du -sh /home/*

d'autre

echo "Utilisation de l'espace domestique ($USER)" du -sh $HOME

fi

dormir $DÉLAI

fi

d'autre

echo "Entrée invalide."

dormir $DÉLAI

fi

fait

echo "Programme terminé."

RETARD=3 # Nombre de secondes pour afficher les résultats


while [[ $REPLY != 0 ]]; faire

clair

chat <<- _EOF_

Veuillez sélectionner:


1. Afficher les informations système

2. Afficher l'espace disque

3. Afficher l'utilisation de l'espace domestique

0. Quitter


_EOF_

read -p "Entrer la sélection [0-3] > "


si [[ $REPLY =~ ^[0-3]$ ]] ; alors si [[ $REPLY == 1 ]]; alors

echo "Nom d'hôte : $HOSTNAME"

dormir $DÉLAI

fi

if [[ $REPLY == 2 ]]; puis df -h

dormir $DÉLAI

fi

if [[ $REPLY == 3 ]]; alors

if [[ $(id -u) -eq 0 ]] ; alors

echo "Utilisation de l'espace d'accueil (tous les utilisateurs)" du -sh /home/*

d'autre

echo "Utilisation de l'espace domestique ($USER)" du -sh $HOME

fi

dormir $DÉLAI

fi

d'autre

echo "Entrée invalide."

dormir $DÉLAI

fi

fait

echo "Programme terminé."


En enfermant le menu dans une boucle while, nous pouvons faire en sorte que le programme répète l'affichage du menu après chaque sélection. La boucle continue tant que RÉPONDRE n'est pas égal à « 0 » et le menu s'affiche à nouveau, donnant à l'utilisateur la possibilité de faire une autre sélection. A la fin de chaque action, un sleep La commande est exécutée de sorte que le programme s'arrête pendant quelques secondes pour permettre aux résultats de la sélection d'être vus avant que l'écran ne soit effacé et que le menu soit réaffiché. Une fois que RÉPONDRE est égal à « 0 », indiquant la sélection « quitter »,


la boucle se termine et l'exécution continue avec la ligne qui suit fait.


Meilleur système d'exploitation Cloud Computing chez OnWorks :