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 GNU Discussion :

Supprimer sortie dans un test if


Sujet :

Shell et commandes GNU

  1. #1
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut Supprimer sortie dans un test if
    Bonjour

    j'essaie de faire un script bash avec un test sur une entrée utilisateur. Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    echo "Acceptez vous la licence d'utilisation (procéder à l'installation)? (Y,n)"
     
    read reponse
     
    if ["$reponse" == ""]||["$reponse" == "Y"]||["$reponse" == "y"]
    then
    	echo "Lancement de l'installation"
    else
    	echo "Terminé"
    fi
    quand je test ce script et que je met n'importe quoi (c par exemple) j’obtiens ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Acceptez vous la licence d'utilisation (procéder à l'installation)? (Y,n)
    c
    install.sh: 23: install.sh: [c: not found
    install.sh: 23: install.sh: [c: not found
    install.sh: 23: install.sh: [c: not found
    Terminé
    si je fais "Entrée" ça fonctionne par contre rien d'autre. Si je met "y" ou "Y" ça ne fonctionne pas...

    merci d'avance pour votre aide
    Bien reçu, tous les messages. Ils disent qu’ils ont compris, qu’il n’y a plus le choix. Que l’esprit qui souffle, guidera leurs pas. Qu’arrivent les derniers temps où nous pourrons parler. Alors soyons désinvoltes, n’ayons l’air de rien

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 559
    Points : 19 398
    Points
    19 398
    Par défaut
    Bonjour,ilfautmettredesespacesentrelescommandes,sinonc'estincompréhensiblepourl'interpréteurdecommandes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    echo "Acceptez vous la licence d'utilisation (procéder à l'installation)? (Y,n)"
     
    read reponse
     
    if [ "$reponse" == "" ] || [ "$reponse" == "Y" ] || [ "$reponse" == "y" ]
    then
       echo "Lancement de l'installation"
    else
       echo "Terminé"
    fi
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut
    Jaipresquefaillicroirequecétaitçaleproblème

    mais non j'ai modifié le script pour rajouter les espaces et toujours le même souci...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    echo "Acceptez vous la licence d'utilisation (procéder à l'installation)? (Y,n)"
     
    read reponse
     
    if [ "$reponse" == "" ] || [ "$reponse" == "Y" ] || [ "$reponse" == "y" ]
    then
    	echo "Lancement de l'installation"
    else
    	echo "Terminé"
    fi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Acceptez vous la licence d'utilisation (procéder à l'installation)? (Y,n)
    d
    install.sh: 23: [: d: unexpected operator
    install.sh: 23: [: d: unexpected operator
    install.sh: 23: [: d: unexpected operator
    Terminé
    Bien reçu, tous les messages. Ils disent qu’ils ont compris, qu’il n’y a plus le choix. Que l’esprit qui souffle, guidera leurs pas. Qu’arrivent les derniers temps où nous pourrons parler. Alors soyons désinvoltes, n’ayons l’air de rien

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 559
    Points : 19 398
    Points
    19 398
    Par défaut
    le problème vient de plus haut dans le script alors.
    mais quoi
    ...
    ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 297
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,

    Le probblème ne serait pas plutot:
    En principe, le test est plutot:
    Cordialement.
    Cordialement.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 559
    Points : 19 398
    Points
    19 398
    Par défaut
    en effet, bash y est indifférent, posh sort d'autres erreurs.
    par contre, le message d'erreur semble coller avec dash.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Bonjour

    Et si on essayait la syntaxe classique
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    if test "$reponse" = "" || test "$reponse" = "Y" || test "$reponse" = "y"

    Accessoirement moi j'aurais mis les connecteurs test plutôt que les connecteurs shell et utilisé l'option -z dédiée au test chaine vide
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    if test -z "$reponse"  -o "$reponse" = "Y" -o "$reponse" = "y"
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 297
    Points : 12 774
    Points
    12 774
    Par défaut
    Personnellement, j'aurai aussi utilisé les connecteurs test, car déjà plus rapide, et surtout plus "compréhensible" si on a par exemple besoin d'utiliser les connecteurs shell sur la même ligne

    Cordialement.
    Cordialement.

  9. #9
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonjour.

    Toujours indiquer le shell utilisé (copier/coller la ligne du shebang pour être sûr) et l'OS utilisé (le sh sous Ubuntu est un lien symbolique vers dash par exemple).

    Sinon les espaces de part et d'autres des crochets comme l'a indique N_Bah restent obligatoires

    Cordialement,
    Idriss

  10. #10
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut
    whow merci à vous

    que de réponses !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if test -z "$reponse"  -o "$reponse" = "Y" -o "$reponse" = "y"
    fonctionne impec !!!! merci encore
    Bien reçu, tous les messages. Ils disent qu’ils ont compris, qu’il n’y a plus le choix. Que l’esprit qui souffle, guidera leurs pas. Qu’arrivent les derniers temps où nous pourrons parler. Alors soyons désinvoltes, n’ayons l’air de rien

  11. #11
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Oui mais c'est trop facile, il aurait été souhaitable de comprendre pourquoi, ta syntaxe avec les crochets ne fonctionne pas

    L'hypothèse du dash qui ne connait pas "==" me parait la plus plausible. Après utiliser test dans ton script final n'est pas un soucis.

  12. #12
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 297
    Points : 12 774
    Points
    12 774
    Par défaut
    Pour répondre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ dash
    $ test "tyty" = "tutu"
    $ echo $?
    1
    $ test "tyty" = "tyty"
    $ echo $?
    0
    $ test "tyty" == "tyty"
    test: 5: tyty: unexpected operator
    $
    Cordialement.
    Cordialement.

  13. #13
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ok.Idriss Voir le message
    Oui mais c'est trop facile, il aurait été souhaitable de comprendre pourquoi, ta syntaxe avec les crochets ne fonctionne pas
    Ouaip +1. Comprendre l'origine d'un soucis est toujours bénéfique ne serait-ce que pour éviter le même soucis dans un autre script. Et c'est vrai qu'avoir la première ligne du script aurait bien aidé (mais l'hypothèse dash semble la plus plausible)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #14
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut
    en faite je ne connaissais pas le mot clé "test"

    j'avais essayé des tests tout simple comme j'aurais fait en perl ou java, j'ai donc testé avec 1 = et puis 2 mais même résultat.

    pour info voici le début du script (enfin le début est resté tel qu'il était la suite a changé pour tenir compte de la solution...

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    # Lecture du fichier d'information et de licence
    while read line  
    do   
       echo "$line"  
    done < lisez-moi.txt
     
    # Acceptation de la licence et lancement de l'installation
    echo "Acceptez vous la licence d'utilisation (procéder à l'installation)? (Y,n)"
     
    read reponse
     
    if test -z "$reponse"  -o "$reponse" = "Y" -o "$reponse" = "y"
    then
    	if test $(whoami) = 'root'
    	then 
    		installation
    	else
    		echo "Vous devez être root pour lancer l'installation (sudo sh install.sh)"
    		exit
    	fi
     
    else
    	echo "Terminé"
    	exit
    fi
    Bien reçu, tous les messages. Ils disent qu’ils ont compris, qu’il n’y a plus le choix. Que l’esprit qui souffle, guidera leurs pas. Qu’arrivent les derniers temps où nous pourrons parler. Alors soyons désinvoltes, n’ayons l’air de rien

  15. #15
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 559
    Points : 19 398
    Points
    19 398
    Par défaut
    le test sur root devrait être la première chose testée dans le script.
    il est inutile d'afficher, ou faire quoi que ce soit avant ce test.

    ton script n'a pas de shebang (#!/bin/shell) ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  16. #16
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Viduc Voir le message
    en faite je ne connaissais pas le mot clé "test"
    Ce n'est pas un mot clef, c'est une commande shell (au même titre que echo ou grep).

    Il faut bien comprendre que dans Unix, chaque commande (grep, echo, ls, mv, etc...) en dehors de ce qu'elle affiche, renvoie un état vrai (0) ou faux (pas 0). Cet état est stocké dans la variable "$?"

    Et en shell, la conditionnelle "if" est faite pour vérifier la validité de l'état de la commande citée

    Exemple
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if grep toto /etc/passwd
    then
        echo "toto utilisateur possible"
    else
        echo "toto utilisateur inconnu"
    fi

    Si grep ne trouve pas "toto" dans /etc/passwd, il renverra l'état "faux" ce qui permet de vérifier facilement avec un if l'alternative "trouvé/pas trouvé". Il en va de même avec quasiment toute commande (une légère exception avec la commande "expr" qui renvoie 0 si elle affiche qqchose de différent de 0 ; 1 si elle affiche 0 et 2 si elle a un souci).

    Ainsi c'est bien pratique en général mais cela impose 2 choses
    1. après if, il faut impérativement une commande
    2. si on veut vérifier la valeur des variables, il faut aussi passer par une commande dédiée à ce travail


    D'où la commande "test" dédiée à la comparaison de valeurs numériques, valeurs textes, ou à examiner la nature des fichiers. La syntaxe [...] n'étant qu'un alias de la commande test. Cette commande n'affiche rien, ne fait que renvoyer un état 0 signifiant "test ok" ou "pas 0" signifiant "test nok"

    Donc généralement on verra très souvent if test car généralement les comparaisons les plus usitées se font sur des variables. Mais parfois il ne sera pas impossible de voir if autre_commande.

    Exemple: vérifier l'existence d'un fichier en Bourne Shell (dans ce langage, test ne connait pas l'option "-e")
    Solution: passer par la commande "ls" qui réussira si le fichier existe et échouera sinon et détecter cette réussite ou échec. L'option "-d" (facultative) permettra, dans le cas d'un dossier, de ne citer que son nom et non son contenu.
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ls -d $1 1>/dev/null 2>&1
    then
        echo "$1 existe en tant que fichier (on ne connait pas son type mais ce n'est pas demandé)"
    else
        echo "le fichier $1 n'existe pas"
    fi

    PS: même si on redirige l'affichage de la commande (ce qui arrive souvent quand on ne veut pas de retour écran), cela ne change rien à la valeur de son état...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  17. #17
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    1 445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    Par défaut
    Ok merci pour ces infos

    mais un if finalement est toujours un if et renvoi une valeur booleen (a quelques exceptions près )...

    Comme je ne m'étais jamais vraiment penché sur la syntaxe shell je ne savais tout ça en effet...

    mon script commence par:

    Bien reçu, tous les messages. Ils disent qu’ils ont compris, qu’il n’y a plus le choix. Que l’esprit qui souffle, guidera leurs pas. Qu’arrivent les derniers temps où nous pourrons parler. Alors soyons désinvoltes, n’ayons l’air de rien

  18. #18
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 699
    Points : 30 999
    Points
    30 999
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Viduc Voir le message
    mais un if finalement est toujours un if et renvoi une valeur booleen (a quelques exceptions près )...
    Attention aux mots.
    Ce sont les programmes et les commandes Unix qui renvoient une valeur.
    Démo
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    true
    echo $?    => tu devrais voir 0
     
    false
    echo $?    => tu devrais voir 1

    Cette valeur est "considérée" booléenne parce que les programmeurs "considèrent" 0 comme vrai et autre chose comme faux.
    if ne renvoie rien, il vérifie juste la véracité de ladite valeur selon la convention ci-dessus et branche dans la partie "then" ou "else" selon la caractéristique booléenne de ladite valeur

    Citation Envoyé par Viduc Voir le message
    mon script commence par:
    Vérifie le programme /bin/bash (ls -l /bin/bash). Théoriquement, te devrais voir /bin/bash -> /bin/dash...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  19. #19
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonsoir.

    Si ton bash est effectivement un lien symbolique vers dash, ce serait étrange.

    Habituellement c'est simplement sh qu'on fait pointer vers dash ? Me souviens plus pour Debian mais pour Ubuntu et Mint c'est comme ça il me semble

    Peux-tu, en plus de nous donner la sortie de ls -l /bin/bash, nous préciser ton OS comme demandé plus haut ?


  20. #20
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 081
    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 081
    Points : 30 831
    Points
    30 831
    Par défaut
    La preuve que if se base sur la valeur retournée par une commande en considérant 0 comme vrai et toute autre valeur comme faux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (( 0 )) ; then ; echo "0 est vrai" ; else ; echo "0 est faux" ; fi
    if (( 2 )) ; then ; echo "2 est vrai" ; else ; echo "2 est faux" ; fi
    affiche
    0 est vrai
    2 est faux
    ___________________________
    Edit : Correction

    La bonne réponse est
    2 est vrai
    0 est faux
    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.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/07/2012, 22h53
  2. Supprimer les colonnes DEV TEST dans le contexte
    Par amansouri dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 16/03/2012, 16h35
  3. Réponses: 2
    Dernier message: 27/12/2005, 13h52
  4. Création des états de sortie dans JBuilder ?
    Par k_hamza75 dans le forum JBuilder
    Réponses: 2
    Dernier message: 15/11/2004, 11h44
  5. [debutant] supprimer elements dans une listbox
    Par F.F. dans le forum C++Builder
    Réponses: 8
    Dernier message: 02/07/2004, 11h38

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