• [^] # Re: false

    Posté par . En réponse au journal Le core utile. Évalué à 2.

    $ if (rm test); then echo ok; fi
    rm: cannot remove `test': No such file or directory
    $ touch test; if (rm test); then echo ok; fi
    ok
    

    Bah c’est justement ce que je dis, dans le premier cas la commande a un code retour ≠ 0 la condition est fausse alors que dans la deuxième le code retour est 0 est la condition est vrai :

    ≠ 0 implique faux
    0 implique vrai

    Donc c'est plus logique d'attribuer 0 à ok et !0 à toutes les situations non ok.

    Oui mais quand on apprend la logique on note 0 = faux et 1 = vrai, c’est le contraire en shell.

    Dans les autres langages de programmation on également plutôt l’habitude qu’une valeur différente de zéro soit évaluée vraie et zéro soit évalué faux.