|
|
|
|
Bonjour,
Mon problème est comme suit: J'ai un prompt invitant l'utilisateur à faire son choix parmi plusieurs choix lus à partir d'un fichier, je voudrai limiter le choix de l'utilisateur à seulement et seulement deux choix et récupérer en paramètres les choix choisis.
Exemple :
1. Couleur : verte Code : 1
2. Couleur : jaune Code : 2
3. Couleur : rouge Code : 3
Votre choix :
Les paramètres (verte, 1) et (jaune, 2) et (rouge,3) représente lors de l'affichage les paramètres $2 et $4.
Si l'utilisateur choisit les options 1 et 3 un tableau tab[i] devrait se remplir avec les paramètres (verte,1,rouge,3)
Le choix doit se limiter à deux choix obligatoireemnt : exemple : 1,3 ou 1,2 ou 2,3
Merci d'avance pour votre aide.
Configuration: Windows XP Internet Explorer 7.0
Répondre à simo
|
Salut,
./foo.sh Choisissez 2 couleurs : 1. Couleur : verte Code : 1 2. Couleur : jaune Code : 2 3. Couleur : rouge Code : 3 2 Mauvais choix, 2 couleurs seulement doivent être choisies... Recommencez s'il vous plaît. Choisissez 2 couleurs : 1. Couleur : verte Code : 1 2. Couleur : jaune Code : 2 3. Couleur : rouge Code : 3 3 1 Deux couleurs ont été choisies ;-)) tableau = rouge 3 verte 1 1ère valeur tableau = rouge 2ème valeur tableau = 3 3ème valeur tableau = verte 4ème valeur tableau = 1 [tmpfs]$Le script : #! /bin/bash
set "verte 1" "jaune 2" "rouge 3"
while :
do
echo
echo "Choisissez 2 couleurs :"
echo
echo "1. Couleur : verte Code : 1
2. Couleur : jaune Code : 2
3. Couleur : rouge Code : 3"
echo
read -a color
if [ "${#color[*]}" != "2" ]
then echo
echo "Mauvais choix, 2 couleurs seulement doivent être choisies..."
echo "Recommencez s'il vous plaît."
echo
continue
else break
fi
done
echo
echo "Deux couleurs ont été choisies ;-))"
echo
tableau=( $(eval echo \$${color[0]} \$${color[1]}) )
echo "tableau = ${tableau[*]}"
echo "1ère valeur tableau = ${tableau[0]}"
echo "2ème valeur tableau = ${tableau[1]}"
echo "3ème valeur tableau = ${tableau[2]}"
echo "4ème valeur tableau = ${tableau[3]}";-))
$ man woman Il n'y a pas de page de manuel pour woman. |
Bonjour jipicy,
|
Re,
#! /bin/bash
corresp[1]=verte
corresp[2]=jaune
corresp[3]=rouge
a=null
b=null
while :
do
echo
echo "Choisissez 2 couleurs :"
echo
echo "1. Couleur : verte Code : 1"
echo "2. Couleur : jaune Code : 2"
echo "3. Couleur : rouge Code : 3"
echo
read couleur
a=$(echo $couleur | sed 's/^[1-3],[1-3]$//')
b=$(echo $couleur | sed 's/^[1-3]$//')
if [ ! "$b" ] && [ "$couleur" ]
then
tableau[1]=${couleur:0:1}
tableau[0]=${corresp[${tableau[1]}]}
break
elif [ ! "$a" ] && [ "$couleur" ]
then
tableau[1]=${couleur:0:1}
tableau[0]=${corresp[${tableau[1]}]}
tableau[3]=${couleur:2:1}
tableau[2]=${corresp[${tableau[3]}]}
break
else
echo "Mauvais choix, 1 ou 2 couleurs seulement doivent être choisies..."
echo "Recommencez s'il vous plaît."
echo
fi
done
echo "tableau = ${tableau[*]}"
echo "1ère valeur tableau = ${tableau[0]}"
echo "2ème valeur tableau = ${tableau[1]}"
echo "3ème valeur tableau = ${tableau[2]}"
echo "4ème valeur tableau = ${tableau[3]}
Google is your friend |
Re,
#! /bin/bash
#A changer
corresp[1]=verte
corresp[2]=jaune
corresp[3]=rouge
corresp[4]=noir
##
nbCouleur=${#corresp[*]}
a=null
b=null
while :
do
i=1
while [ $i -le $nbCouleur ]; do
echo "$i : ${corresp[$i]}"
i=$(($i+1))
done
echo
read couleur
a=$(echo $couleur | sed "s/^[1-$nbCouleur],[1-$nbCouleur]$//")
b=$(echo $couleur | sed "s/^[1-$nbCouleur]$//")
choix=$(echo $couleur | sed "s/,\([1-$nbCouleur]\)/ \1/g")
if [ ! "$b" ] && [ "$couleur" ]
then
tableau[1]=$(echo $choix | cut -d' ' -f1)
tableau[0]=${corresp[${tableau[1]}]}
break
elif [ ! "$a" ] && [ "$couleur" ]
then
tableau[1]=$(echo $choix | cut -d' ' -f1)
tableau[0]=${corresp[${tableau[1]}]}
tableau[3]=$(echo $choix | cut -d' ' -f2)
tableau[2]=${corresp[${tableau[3]}]}
break
else
echo "Recommencez s'il vous plaît."
echo
fi
done
echo "tableau = ${tableau[*]}"
echo "1ère valeur tableau = ${tableau[0]}"
echo "2ème valeur tableau = ${tableau[1]}"
echo "3ème valeur tableau = ${tableau[2]}"
echo "4ème valeur tableau = ${tableau[3]}
Google is your friend |
C'est expliqué plus haut ;)
|

