Using bc in bash script

Stephen Hilton nospam at hiltonbsd.com
Thu Aug 14 09:53:16 PDT 2003


On Thu, 14 Aug 2003 11:08:21 -0500
"Charles Howse" <chowse at charter.net> wrote:

> > On Thu, Aug 14, 2003 at 10:46:45AM -0500, Charles Howse wrote:
> > > Hello List,
> > > 
> > > I've migrated from Redhat Linux 9 to FreeBSD 4.8-RELEASE, 
> > character mode
> > > - no gui.
> > > 
> > > I'm trying to calculate the number of seconds between 
> > $start_time and
> > > $end_time in a bash script.
> > > 
> > > Start_time=`date +%s` # Seconds past midnight at start of script
> > > [ do lots of stuff ]
> > > End_time=`date +%s`   # Seconds past midnight at end of script
> > > 
> > > Then I want to: et=`bc $end_time - $start_time` to get the number of
> > > seconds or fractions of seconds elapsed.
> > How about:
> > 
> > et=`echo "$end_time - $start_time" | bc`
> 
> Hi Jez, thanks for the reply!
> 
> As my daughter would say, "Well, DUHHHHHHH!"
> That worked fine, it reported 0 seconds.
> Can I refine it to give me something like: .784 seconds?

Charles,

This will set bc precision to 5 decimal places:

et=`echo "scale=5 ; $end_time - $start_time" | bc`


Regards,

Stephen Hilton
nospam at hiltonbsd.com


More information about the freebsd-questions mailing list