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 Jack DeNoumea (site web personnel) . Évalué à 3.
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 Anonyme . Évalué à 1.
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 Christophe --- . Évalué à 2.
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.