IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes POSIX Discussion :

Problème avec les conditions if et/ou


Sujet :

Shell et commandes POSIX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Points : 37
    Points
    37
    Par défaut Problème avec les conditions if et/ou
    Bonjour,

    J'ai un petit dans une partie de mon code avec les conditions et/ou.
    j'ai 3 variables avec des entiers: val1, val2 et val3
    En fonction des valeurs des 3 valeurs je dois définit les valeur de val4 et val5.

    Si (val1=1 ou 2 ou 3) ET (val2=0 OU 2) alors val4 prend 1 sinon 0
    Si val3 est différent de vide ET val2 est différent de 4 alors val5 prend 1 sinon 0.

    Voici ce que j'ai fait mais j'ai des erreurs.
    merci de votre aide

    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
    if (([ $val1 -eq 1 ] || [ $val1 -eq 2 ] || [ $val1 -eq 3 ]) && ([ $val2 -eq 0 ] || [ $val2 -eq 2 ]))
    	then
    		val4=1
    	else
            	val4=0
    	fi
     
     
     
    if ([ !($val3 -eq NULL) ] && [ $val2 -eq 4 ]) 
    then
    	val5=1
    else
            val5=0
    fi

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 084
    Points : 30 841
    Points
    30 841
    Par défaut
    NULL n'est pas reconnu comme étant une chaine vide, seulement comme la chaine 'NULL'.
    Pour tester si une chaine est vide ou non, on utilise respectivement -z et -nDans ton premier test, tu peux simplifier en utilisant la reconnaissance de format.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if [ "${val1}" = [123] ] && [ "${val2}" = [02] ]
    then
      val4=1
    else
      val4=0
    fi
    if [ -n "${val3}" ] && [ "${val2}" -ne 4 ]
    then
      val5=1
    else
      val5=0
    fi
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    merci pour cette contribution.

    Pour le 1er cas la condition sur val1 est 1 ou 2 ou 3 et non 123.

    Donc val4 prend la valeur 1 si [val1=1 ou si val1=2 ou si val1=3] ET si (val2=0 ou val2=2].


    Cdt

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 084
    Points : 30 841
    Points
    30 841
    Par défaut
    As-tu testé la solution proposée ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Oui et j'ai toujours 0 dans les deux cas

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 084
    Points : 30 841
    Points
    30 841
    Par défaut
    Quel shell utilises-tu ? Sur quel système ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les conditions
    Par vasilpapa dans le forum Haskell
    Réponses: 8
    Dernier message: 02/05/2014, 20h51
  2. Problème avec les conditions
    Par yoyo-tns dans le forum Shell et commandes POSIX
    Réponses: 4
    Dernier message: 27/11/2012, 09h45
  3. [PHP 5.3] Problème avec les conditions, lors de l'identification
    Par Devildz dans le forum Langage
    Réponses: 5
    Dernier message: 03/02/2012, 18h02
  4. Réponses: 9
    Dernier message: 29/03/2011, 20h45
  5. Problème avec les conditions ''sous-ensemble d'un tableau''
    Par djangossoul dans le forum LabVIEW
    Réponses: 2
    Dernier message: 07/06/2007, 12h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo