SE UNIX - Part3
SE UNIX - Part3
SE UNIX - Part3
#/bin/bash
time=$1
if [ $time -lt 10 ]
then
echo "Good morning"
elif [ $time -lt 20 ]
then
echo "Good day"
else
echo "Good evening"
fi
Branchement à choix multiples
La structure « case…esac » :
La structure de contrôle case permet elle aussi d'effectuer des tests. Elle permet
d'orienter la suite du programme en fonction d'un choix de différentes valeurs.
Quand il y a un nombre important de choix, la commande case est plus appropriée
que la commande if.
case $variable in
modele1) commande1
...
Il ne faut surtout pas ;;
modele2) commande2
oublier les caractères «;;»
...
car cela engendrera une ;;
erreur !! modele3 | modele4 | modele5 ) commande3
...
;;
esac
Branchement à choix multiples
La structure « case…esac » :
Exemple: « command.sh » avec une variable paramètre
#!/bin/bash
case $1 in
start)
echo "Starting the service"
;;
stop)
echo "Stopping the service"
;;
restart)
echo "Restarting the service"
;;
*)
echo "Unknown action"
;;
esac
La boucle sur liste de valeurs
La boucle « for…do...done » :
La boucle « for… do…done » va boucler autant de fois qu'il existe de valeurs dans la
liste. À chaque tour, la variable « $var » prendra séquentiellement comme contenu la
valeur suivante de la liste.
#!/bin/bash
for var in 1 2 3 4 5
do
echo "Number is $var"
done
La boucle sur liste de valeurs
La boucle « for…do...done » :
Boucle infinie:
#!/bin/bash
for (( ; ; ))
do
echo "Boucle infinie [Appuyez sur CTRL+C pour stopper]"
done
La boucle sur liste de valeurs
La boucle « for…do...done » :
Rupture d’une boucle par break:
#!/bin/bash
for var in {20..30}
do
if [[ "$var" == '27' ]]; then
break
fi
echo "Number is: $var"
done
for ((e1;e2;e3))
do instruction(s)
done
Dans laquelle, e1, e2 et e3 sont des expressions arithmétiques. Une telle boucle
commence par exécuter l'expression e1, puis tant que l'expression e2 est différente de
zéro le bloc d'instructions est exécuté et l'expression e3 évaluée. Exemple:
TP: Écrivez un script qui compte à rebours de 5 à 0, avec une pause d’une seconde à
chaque affichage. (en rouge)
La boucle sur conditions
La boucle « while…do...done » et « until…do...done » :
La boucle while:
#!/bin/bash
num=5
while [ $num -ge 0 ]
do
echo $num
((num--))
done
TP: Écrire un script qui affiche la date en permanence, chaque écriture écrasant la
précédente.
La boucle sur conditions
La boucle « while…do...done » :
#!/bin/bash
num=5
while [ $num -ge 0 ]
do
echo $num
((num--))
if [[ "$num" == '3' ]]; then
echo "Sortie de la boucle par break"
break
fi
done
La boucle sur conditions
La boucle « while…do...done » :
#!/bin/bash
num=6
while [ $num -ge 1 ]
do
((num--))
if [[ "$num" == '3' ]]; then
echo "etape ignoree par continue"
continue
fi
echo $num
done
La boucle sur conditions
La boucle « until…do...done » :
La boucle until:
#!/bin/bash
num=5
until [ $num -le 1 ]
do
echo $num
((num--))
done
Donnez les versions du script utilisant les boucles for, while et until.
Exercice 6
Nombre de lignes : 8
*
***
*****
*******
*********
***********
*************
***************