Elapsed time ?

Benjamin Franz snowhare at nihongo.org
Sun Mar 12 12:55:47 UTC 2006


On Sun, 12 Mar 2006, M. Lewis wrote:

>
> I'm trying to get the elapsed time. The following gives me '1', however I 
> would like it to give me 1.98333333. Where am I missing the boat?
>
>
> #!/bin/sh
>
> TIME1=`date +%s`
> echo $TIME1
> sleep 119
> TIME2=`date +%s`
> echo $TIME2
>
>
> ELTIME=$[ ($TIME2 - $TIME1)/60 ]
> echo $ELTIME

Do you need elapsed time _in_ your script or elapsed time _for_ your 
script/program? If the latter,

time myscriptname

will give you good numbers (see 'man time' for info on 'time' options) a 
lot easier.

If the former, look at the '%N' option to date (IOW: date '+%s.%N') 
(otherwise you have up to a full second error in the timing) and bc for 
floating point arithmetic.

#!/bin/sh

TIME1=`date '+%s.%N'`
echo $TIME1
sleep 2
TIME2=`date '+%s.%N'`
echo $TIME2
ELTIME=`echo "($TIME2 - $TIME1)/60" | bc -l`
echo $ELTIME

-- 
Benjamin Franz

If you can't handle reality, it *will* handle you.




More information about the fedora-list mailing list