diff options
| author | jerome <jerome@xlinfo.fr> | 2024-03-07 17:06:12 +0100 |
|---|---|---|
| committer | jerome <jerome@xlinfo.fr> | 2024-03-07 17:06:12 +0100 |
| commit | f472fe2ffb102bca3aa9d191fb728e563148f8ba (patch) | |
| tree | 4a695f556e8ccc684010607dd40e7cfe0185bfe0 /exemple7 | |
| download | bash_tutorial-f472fe2ffb102bca3aa9d191fb728e563148f8ba.tar.gz bash_tutorial-f472fe2ffb102bca3aa9d191fb728e563148f8ba.zip | |
commit initial
Diffstat (limited to 'exemple7')
| -rwxr-xr-x | exemple7 | 41 |
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 !" |
