#!/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 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 !"