diff options
Diffstat (limited to 'exemple07')
| -rwxr-xr-x | exemple07 | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/exemple07 b/exemple07 new file mode 100755 index 0000000..89c4d88 --- /dev/null +++ b/exemple07 @@ -0,0 +1,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 !" |
