Structure de if dans shell

lamiae123 Messages postés 19 Statut Membre -  
lamiae123 Messages postés 19 Statut Membre -
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

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
    1. lamiae123 Messages postés 19 Statut Membre
       
      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
    2. lamiae123 Messages postés 19 Statut Membre
       
      dsl le $4 c est $1 en faite
      faute de frappe
      0