Partage
  • Partager sur Facebook
  • Partager sur Twitter

Boucle Shell

Sujet résolu
    7 février 2019 à 1:59:33

    Bonjour,

    Je code actuellement un script shell me permettant de lire des fichiers etc.

    J'ai un soucis avec une de mes conditions, un simple if... Le problème, c'est que le echo se mets à chaque fois et je ne comprends pas pourquoi.

    J'ai essayé plusieurs opérateurs logique, avec et sans guillemets. Rien n'y fait.

    La variable currentLvl ==> Elle s'incrémente de +1 à chaque bonne réponse

    currentLvl = `cat /opt/lab/$Challenge/Score/score.$currentUser

    La variable countQuestion ==> La somme des questions d'un challenge

    countQuestion = `cat $currentChallenge | wc -l`
    où $currentChallenge est simplement un chemin d'arborescence.

    En espérant qu'un jeune padawan ou un jedi avancé passe dans le coin.
    En vous souhaitant une agréable nuit :D

    Cordialement
    Sinak

    -
    Edité par Sinak 7 février 2019 à 2:00:20

    • Partager sur Facebook
    • Partager sur Twitter
      7 février 2019 à 9:52:22

      Salut,

      Pour comparer des nombres il faut utiliser "-gt" (greater than) à la place de ">", sinon tes variables sont considérées comme du texte.

      https://stackoverflow.com/a/18668580

      • Partager sur Facebook
      • Partager sur Twitter
        7 février 2019 à 17:14:50

        Bonjour Stormweaker,

        J'avais pourtant essayé hier, peut-être que ma condition n'était pas top.

        Ce qui veut dire qu'une commande :

        echo "1" > /truc/quelquepart
        et
        echo 1 > /truc/quelquepart

        fais la même chose ? Ou la première entre une chaine de caractère (notamment le "1") et la deuxième ajoute un entier 1 dans le fichier de destination ?

        Avec l'opérande ">", il compare par rapport à la table ascii ?

        Merci de la réponse :D

        • Partager sur Facebook
        • Partager sur Twitter
          11 février 2019 à 12:05:37

          Il me semble que les deux commandes feront la même puisque dans ton fichier tu auras le caractère qui représente "1", à vérifier en éditant en hexa.

          Par contre tu peux essayer de faire echo 1+1 pour voir si ça écrit "1+1" ou "2" dans ton fichier de sortie.

          Je ne sais pas si '>' utilise la table ASCII mais c'est probablement quelque chose d'assez proche.

          J'ai juste les bases en shell donc si tu veux plus d'infos tu devrais poster dans le forum linux, tu auras sans doute des personnes qui s'y connaissent mieux que moi et te fourniront de meilleures explications.

          • Partager sur Facebook
          • Partager sur Twitter
            13 février 2019 à 16:35:09

            Entendu, merci beaucoup.

            Le sujet est résolu, c'était bien le-gt avec les variables sans guillemets.

            • Partager sur Facebook
            • Partager sur Twitter

            Boucle Shell

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown