Structure de if dans shell

Fermé
lamiae123 Messages postés 18 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 30 juin 2010 - 29 avril 2010 à 02:41
lamiae123 Messages postés 18 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 30 juin 2010 - 29 avril 2010 à 20:03
salut,
j'ai un code qui nécessite un if
voici le code:


if [ "$source" = "a" ] || [ "$source" = "b" ] || [ "$source" = "c" ] && [ "$cible" = "d"]&& [ "$cible" = "e"]

then
commande 1

elif ["$source" = "d" ] && [ "$cible" = "a" ] || [ "$cible" = "b" ]|| [ "$cible" = "c"]

then commade 2
else
commade 3
fi

j'ai essayé ce code , mais ça n a pas marché
pouvez vs m'expliquez ou es le problème
merci

1 réponse

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
29 avril 2010 à 09:10
Salut,

Et comme ça :

if [[ "$source" = "a" || "$source" = "b" || "$source" = "c" ]] && [[ "$cible" = "d" || "$cible" = "e" ]]
then
echo "commande 1"
elif [ "$source" = "d" ] && [[ "$cible" = "a" || "$cible" = "b" || "$cible" = "c" ]]
then
echo "commande 2"
else
echo "commande 3"
fi
1
lamiae123 Messages postés 18 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 30 juin 2010
29 avril 2010 à 20:01
merci bcp
en faite j'ai essayé dintegrer ce que vs avez dis avec d autre chose , mé ça n 'a pas marché
pouvez vs voir es ce que la structure suivante est correcte encore cette fois ci
la voila

if [ $1='A']
then

if [[ "$2" = "G" || "$2" = "C" || "$2" = "D" ]] && [[ "$3" = "E" || "$3" = "F" ]]

then

while read lin ; do

commande1 ; done < 2.txt



elif [ "$1" = "E" ] && [[ "$2" = "B" || "$2" = "C" || "$2" = "D" ]]

then
while read lin ; do

commande2 ; done < 2.txt

else

while read lin ; do
commande 3 ; done < 2.txt


fi
elif [ $4='B']

then


if [[ "$2" = "G" || "$2" = "C" || "$2" = "D" ]] && [[ "$3" = "E" || "$3" = "F" ]]

then

while read lin ; do

commande4 ; done < 2.txt

elif [ "$1" = "E" ] && [[ "$2" = "B" || "$2" = "C" || "$2" = "D" ]]

then

while read lin ; do

commande5 ; done < 2.txt

else

while read lin ; do
commande6; done < 2.txt


fi
else

if [[ "$2" = "G" || "$2" = "C" || "$2" = "D" ]] && [[ "$3" = "E" || "$3" = "F" ]]

then

while read lin ; do

commande7 ; done < 2.txt

elif [ "$1" = "E" ] && [[ "$2" = "B" || "$2" = "C" || "$2" = "D" ]]

then

while read lin ; do

commande8 ; done < 2.txt

else

while read lin ; do

commande9 ; done < 2.txt

fi
fi

merci bcp , et bn fin de journée
0
lamiae123 Messages postés 18 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 30 juin 2010
29 avril 2010 à 20:03
dsl le $4 c est $1 en faite
faute de frappe
0