[Unix Ksh] Cree question dans un script

Résolu
Bonjour
J'aurais voulu inclure une question dans un script , la réponse devra ètre soit Y soit N et non pas yes ou Non ou Yes ou yeS ou NoN , comment procéder ?

j'ai fais un peu de recherche qui mon un peu aider, mais le résultat reste négatif :

Donc voila :

printf "Dou you want to force creation of SecClass if not used yet in LOP1? [Y|N] "
 read answer
        if answer = Y ;then
        echo "Ok ca marche, et je suis super content !"
        fi



j'ai essayer avec Y seulement mais le résultat est négatif , j'attend avec impatience votre aides ,
Merci d'avance ;)
Configuration: Windows XP
Firefox 2.0.0.6

2 réponses

  1. Modérateur
    Salut,

    Et pourquoi pas utiliser "case/esac" ?

    Petite démonstration :
    [tmpfs]$ cat foo.sh
    
    #! /bin/ksh
    
    echo "Dou you want to force creation of SecClass if not used yet in LOP1? [Y|N] "
    read answer
    case "$answer" in
    Y|y)    echo "Ok ca marche, et je suis super content !"
            ;;
    N|n)    echo "Ok ca marche aussi, et je suis aussi super content !"
            ;;
    *)      echo "Ok ca marche encore, et je suis encore super content !"
            ;;
    esac
    
    [tmpfs]$ ./foo.sh
    
    Dou you want to force creation of SecClass if not used yet in LOP1? [Y|N]
    Y
    Ok ca marche, et je suis super content !
    
    [tmpfs]$ ./foo.sh
    
    Dou you want to force creation of SecClass if not used yet in LOP1? [Y|N]
    y
    Ok ca marche, et je suis super content !
    
    [tmpfs]$ ./foo.sh
    
    Dou you want to force creation of SecClass if not used yet in LOP1? [Y|N]
    N
    Ok ca marche aussi, et je suis aussi super content !
    
    [tmpfs]$ ./foo.sh
    
    Dou you want to force creation of SecClass if not used yet in LOP1? [Y|N]
    n
    Ok ca marche aussi, et je suis aussi super content !
    
    [tmpfs]$ ./foo.sh
    
    Dou you want to force creation of SecClass if not used yet in LOP1? [Y|N]
    Yes
    Ok ca marche encore, et je suis encore super content !
    
    [tmpfs]$
    ;-))
    1. vraiment excellent !

      Quelle serait la commande qui permettrai d'afficher un message d'erreur , de tel sorte que si nous rentrons "ok" , le message nous disent : " veillez choisir entre Y ou N "
      c'est a dire d'interdire tout autre lettre que Y et N , si par erreur l'on mais par exemple H , la commande nous redemande de vérifier et d'utiliser Y ou N

      MErci d'avance {~_^}
    2. Modérateur
      @Karamurat
      #! /bin/ksh
      
      while :
      do
      echo "Dou you want to force creation of SecClass if not used yet in LOP1? [Y|N] "
      read answer
      case "$answer" in
      Y|y)    echo "Ok ca marche, et je suis super content !"
              break
              ;;
      N|n)    echo "Ok ca marche aussi, et je suis aussi super content !"
              break
              ;;
      *)      echo "Vous avez entrer une mauvaise réponse, veuillez recommencer s'il vous plaît, merci ! "
              echo
              continue
              ;;
      esac
      done
      
      echo
      echo "Bravo."
      ;-))