Forum Programmation.shell Compraison de chaines de carcatères sous bash

Posté par  .
Étiquettes : aucune
0
16
juil.
2008
bonjour


Je sui en train d'écrire un script afin de mettre un timestamp + une commande que je ferai tourner d'une certaine heure jusqu'à une autre.

Mais je butte sans arrêt sur le test de comparaison entre l'heure courante et l'heure de fin. J'ai consulté pas mal de sites sur bash, que je suis à la lettre mais rien n'y fait.


Mon squelette de script


#!/usr/bin/bash

cur_time=`date +"%H:%M"`
end_time="18:00"

while [ "$cur_time" < "$end_time" ]
do
echo -e "$cur_time \n " >> new_monitor.log
cur_time=`date +"%H:%M"`
done



et l'erreur que je n'arrive pas à solutionner



line 6: 18:00: No such file or directory




qlq'un sait comment je peux m'y prendre ?


Merci par avance.

E.
  • # probleme du test (entre autre)

    Posté par  (site web personnel) . Évalué à 3.

    cur_time=`date +"%H%M"`
    end_time="1800"

    while [ "$cur_time" -lt "$end_time" ]


    man test
    a la fin tu as les equivalent egaux/different/inferieur/etc etc
    < et > etant des caracteres de redirection pas de comparaison

    De plus un ordinateur ne sait pas que 18:00 ça veut dire 18h00min donc lui demander si 17:50 est avant 18h00, il sait pas faire.
    par contre 18h00 tu le convertis en 1800 (mille huit cent), du coups tu peux comparer 1750 avec 1800
    • [^] # Re: probleme du test (entre autre)

      Posté par  . Évalué à 1.

      efefctivement,
      je pensais que absh pouvait faire une comparaison de chaîne de caractères, carcatère par caractère.

      Je réesaie de suite.

      Merci beaucoup pr ton aide.

      E.
      • [^] # Re: probleme du test (entre autre)

        Posté par  . Évalué à 2.

        Bonjour,

        Le programme test ne sait pas faire de comparaison de chaines autre que == et !=, donc par compatibilité, la fonction interne [ de bash fait de même.

        Par contre, dans les fonctions étendues de bash, il y a un truc qui peut t'aider:
        [[ "$cur_time" < "$end_time" ]]
        cela à l'air de marcher chez moi.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.