Bonjour,

imaginez un array qui stocke les valeurs saisies d'un utilisateur sur l'entrée standard. J'attends de l'utilisateur un choix parmi 4 valeurs distinctes. Cet array ne doit donc stocker au maximum que 4 valeurs.

Mais je dois pouvoir tester les erreurs suivantes :
- il ne renseigne rien. Dans ce cas j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
RET_cube=${#cube[*]}
if [ $RET_cube == 0 ]; then
  echo "!!!!!! Veuillez selectionner au moins un cube !!!!!!!\n"
  exit;
Cette première partie fonctionne.

- C'est sur le test suivant qu'il plante. Imaginons qu'il renseigne une ou plusieurs valeurs mais qui ne sont pas celles que j'attends. Et c'est la que je ne sais pas faire. Je pensais que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#Test : l'utilisateur n'a rien renseigné
RET_cube=${#cube[*]}
if [ $RET_cube == 0 ]; then
  echo "!!!!!! Veuillez selectionner au moins un cube !!!!!!!\n"
  exit;
else
# Test : l'utilisateur a répondu correctement ?
  for i in ${cube[@]}; do
    if ([ ${cube[@]} == F || E || M || Q ]); then 
      verif="OK"
      echo "le resultat est : $verif"
    else
      verif="KO"
      echo "le resultat est : $verif"
    fi
  done
fi
ou (c'est la seule ligne 9 qui change entre les 2 versions)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#Test : l'utilisateur n'a rien renseigné
RET_cube=${#cube[*]}
if [ $RET_cube == 0 ]; then
  echo "!!!!!! Veuillez selectionner au moins un cube !!!!!!!\n"
  exit;
else
# Test : l'utilisateur a répondu correctement ?
  for i in ${cube[@]}; do
    if ([ ${cube[@]} == F ] || [ ${cube[@]} == E ] || [ ${cube[@]} == M ] || [ ${cube[@]} == Q ]); then 
      verif="OK"
      echo "le resultat est : $verif"
    else
      verif="KO"
      echo "le resultat est : $verif"
    fi
  done
fi
allait fonctionner mais non.... Je me prends des erreur dans la tronche

Donc connaissez vous un equivalent au "IN" du SQL par exemple qui me permettrait de tester mon array sur ce point et en fonction du resultat lancerait une autre suite de commandes dans la même boucle ?