[Shell]instruction while et tableau de valeurs
Résolu/Fermé
Shadow_49
Messages postés
11
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
25 août 2009
-
16 juil. 2009 à 13:58
Shadow_49 Messages postés 11 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 25 août 2009 - 16 juil. 2009 à 15:31
Shadow_49 Messages postés 11 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 25 août 2009 - 16 juil. 2009 à 15:31
A voir également:
- [Shell]instruction while et tableau de valeurs
- Tableau word - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
- Trier tableau excel - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
5 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
16 juil. 2009 à 14:14
16 juil. 2009 à 14:14
Salut,
Une façon de faire :
Une façon de faire :
#! /bin/sh #set -xv TAB=( A B C D E ) while : clear do for i in ${TAB[@]} do echo $i done read -p "Choisissez une valeur : " val grep -q ${val} <<<${TAB[@]} if [ "$?" = 1 ] then echo "Mauvais choix :-(" sleep 2 continue else echo "Bon choix, bye..." break fi done;-))
Shadow_49
Messages postés
11
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
25 août 2009
1
16 juil. 2009 à 14:24
16 juil. 2009 à 14:24
En effet cela marche mais en partie
Par exemple, j'ai dans mon tableau val1 et val2
si je ne saisis que va comme réponse il me dit que c'est bon quand même.
que veut dire la condition du if s'il te plais ? (je débute en shell je ne connais pas du tout)
Merci d'avance
Par exemple, j'ai dans mon tableau val1 et val2
si je ne saisis que va comme réponse il me dit que c'est bon quand même.
que veut dire la condition du if s'il te plais ? (je débute en shell je ne connais pas du tout)
Merci d'avance
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
16 juil. 2009 à 14:35
16 juil. 2009 à 14:35
Modifie comme ceci :
TAB=( val1 val2 val3 val4 val5 ) while : clear do for i in ${TAB[@]} do echo "- $i" done read -p "Choisissez une valeur : " val grep -q "\b${val}\b" <<<${TAB[@]} if [ "$?" = 1 ] then echo "Mauvais choix :-(" sleep 2 continue else echo "Bon choix, bye..." break fi done
Shadow_49
Messages postés
11
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
25 août 2009
1
16 juil. 2009 à 15:07
16 juil. 2009 à 15:07
Merci, ca marche bien avec val1 etc comme valeur.
Maintenant (je vais parraître chiant !) j'ai comme valeur A4.6 et A4.6_64b (qui sont des versions de RH pour info) et si je ne met que AS4 ça marche alors que je ne l'ai pas dans mon tableau...
Une idée ?
Au passage, que veulent dire les \b et que veut dire le #? = 1 ?
Merci d'avance
Maintenant (je vais parraître chiant !) j'ai comme valeur A4.6 et A4.6_64b (qui sont des versions de RH pour info) et si je ne met que AS4 ça marche alors que je ne l'ai pas dans mon tableau...
Une idée ?
Au passage, que veulent dire les \b et que veut dire le #? = 1 ?
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Shadow_49
Messages postés
11
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
25 août 2009
1
16 juil. 2009 à 15:31
16 juil. 2009 à 15:31
J'ai procédé autrement :
available_versions="AS4.6 AS4.6_64b"
os_version="_"
validator="failed"
while [ ${os_version} = "_" ]; do
echo "Question 1 : "
echo "Quel version de RedHat souhaitez vous installer parmis : "
for version in ${available_versions}; do
echo " - $version"
done
echo "(respectez bien les majuscules)"
read os_version
for choice in ${available_versions}; do
if [ ${os_version} = $choice ]; then
validator="success"
break
else
validator="failed"
fi
done
if [ ${validator} = "failed" ]; then
os_version="_"
echo "La version demandée n'est pas disponible. Toutes les versions disponibles sont affichées dans la liste"
fi
done
Et ça marche pareil (même si c'est un peu plus long)
available_versions="AS4.6 AS4.6_64b"
os_version="_"
validator="failed"
while [ ${os_version} = "_" ]; do
echo "Question 1 : "
echo "Quel version de RedHat souhaitez vous installer parmis : "
for version in ${available_versions}; do
echo " - $version"
done
echo "(respectez bien les majuscules)"
read os_version
for choice in ${available_versions}; do
if [ ${os_version} = $choice ]; then
validator="success"
break
else
validator="failed"
fi
done
if [ ${validator} = "failed" ]; then
os_version="_"
echo "La version demandée n'est pas disponible. Toutes les versions disponibles sont affichées dans la liste"
fi
done
Et ça marche pareil (même si c'est un peu plus long)