OVH Cloud OVH Cloud

Quel temps est-il?

3 réponses
Avatar
jlaurens
Slt,

perdu dans les man et les apropos, je ne vois plus que fcou pour me
répondre.
comment avoir la date dans un script shell avec une précision meilleure
que la seconde (100eme voire 1000eme)

TIA

3 réponses

Avatar
Nicolas George
Jérôme Laurens wrote in message
<1gvxdhq.secto41lk44hoN%:
comment avoir la date dans un script shell avec une précision meilleure
que la seconde (100eme voire 1000eme)


Rien de standard à ma connaissance. Il y a le %N de GNU date, mais c'est une
extension GNU justement.

Avatar
Pascal Bourguignon
(Jérôme Laurens) writes:
perdu dans les man et les apropos, je ne vois plus que fcou pour me
répondre.
comment avoir la date dans un script shell avec une précision meilleure
que la seconde (100eme voire 1000eme)


Le problème, c'est que invoquer un programme à partir du shell prend
plus de 1/100 s. Il y aura au moins deux changement de contextes
(passe du shell au programme, et du programme au shell), et lors du
second contexte, s'il y a d'autres processus prets, ils obtiendront
une tranche de temps avant le shell. Alors lorsque le shell aura la
réponse à 1/1000 seconde, il pourra s'être écoulé entre 1/50 et 1/2
seconde, et donc le résultat sera totalement faux.

Si je dis qu'il est maintenant 19 heures dans ma timezone, je suis
super exact. Si je dis qu'il est 19:10:59, j'ai déjà faux. Alors si
je dis 19:11:13.4321, c'est ultra faux.

--
__Pascal Bourguignon__ http://www.informatimago.com/

There is no worse tyranny than to force a man to pay for what he does not
want merely because you think it would be good for him. -- Robert Heinlein

Avatar
Nicolas George
Pascal Bourguignon wrote in message
:
Le problème, c'est que invoquer un programme à partir du shell prend
plus de 1/100 s.


C'est pas dit, ça, avec les machines actuelles. Sur mon PC (qui a déjà trois
ans et demie) là :

t1=`date +%N`; t2=`date +%N`; echo $[1000000000/(t2-t1)]

affiche un résultat qui tourne autour de 320±10, soit deux invocations de
date en backquotes en moins d'1/300 s. Avec une machine récente, une mesure
du temps à 1/10 s ou même 1/100 s n'est pas absurde en shell.