summaryrefslogtreecommitdiff
path: root/exemple7
diff options
context:
space:
mode:
Diffstat (limited to 'exemple7')
-rwxr-xr-xexemple741
1 files changed, 41 insertions, 0 deletions
diff --git a/exemple7 b/exemple7
new file mode 100755
index 0000000..1c672d2
--- /dev/null
+++ b/exemple7
@@ -0,0 +1,41 @@
+#!/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
+
+# 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 !"