Problème avec la commande test sur shell

Bonsoir,

j'ai un petit souci car je n'arrive pas à comprendre pourquoi la commande:
(test 1 -a 0) me renvoie 0 (=vraie) alors que ça devrait m'envoyer 1 (=faux).

merci d'avance pour vos réponses

1 réponse

  1. salut,

    pourquoi crois-tu qu'elle devrait retourner "faux" ?
    les deux termes sont vrais !

    NB : les parenthèses sont inutiles.

    PS : peux-tu utiliser les balises CODE.
    0
    1. Bah en logique (true AND false) renvoie false, et c'est ce que j'ai fais avec -a qui correspond -a AND non?

      Comment ca les balises CODE?
      0
    2. @oyuktapourquoi 0 serait-il faux ? c'est une chaîne, elle existe, donc c'est vrai.

      non, les balises code, c'est < code > ici du code < /code >, sans espaces, et ça produit ce type d'affichage :
      test 1 -a 0 && echo ok || echo ko

      je crois que tu confonds
      test "0"
      , qui teste une chaîne, et
      ((0))
      , qui évalue une expression arithmétique, et qui, elle, retourne faux.
      0
    3. Ok!! j'ai compris!

      Mais du coup, comment on écrirait la commande qui test (1 AND 0) en considérant 1 et 0 comme des nombres arithmétiques?
      0
    4. @oyukta
      ((1 && 0))
      0
    5. @Utilisateur anonymeOui mais je voudrais utiliser la commande test avec le paramètre -a
      0