blob: 89c4d88de36b68a8316b762af5eba3e4962a9f9c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#!/usr/bin/bash
# le mot clé [[
# help [[
# [[ est une amélioration bash de la primitive [. Il comporte plusieurs améliorations qui en font un meilleur choix si vous écrivez des scripts ciblant bash, notamment :
# il gère les chaînes vides et les chaînes avec des espaces de manière plus intuitive (plus besoin d'entourer les variables non initialisées de guillemets...)
# il permet d'utiliser les opérateurs && et || pour les tests et < et > pour les comparaisons de chaînes
# il possède un opérateur =~ pour effectuer des correspondances d'expressions régulières.
# Exemple complètement objectif...
# voir la négation '!'
# attention, ne pas utiliser les guillements ou les apostrophes pour les regexps qui les transforment en chaînes litérales !
while [[ ! $os =~ [lL]inux ]]; do
read -p "Quel est le meilleur os ? " os
done
unset os
echo "Encore une fois !"
until [[ $os =~ [lL]inux ]]; do
read -p "Quel est le meilleur os ? " os
done
for arg in $@;do
echo "Hello $arg"
done
echo
# jeu du nombre mystérieux :
#set -x
echo " ---------------------- "
echo "< Jeu du Nombre Mystère >"
echo " ---------------------- "
secret=$(( RANDOM % 100 +1 ))
nb=0
while [[ $secret != $reponse ]]
do
((nb++))
read -p "Entrez un nombre entre 0 et 100 : " reponse
if [[ ! $reponse =~ ^[0-9]+$ || $reponse -gt 100 || $reponse -le 0 ]] ; then
echo "Hors de l'intervalle !"
elif [[ $reponse -gt $secret ]]; then
echo "Trop grand !"
elif [[ $reponse -lt $secret ]]; then
echo "Trop petit !"
fi
done
echo "Gagné en $nb coups !"
|