[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*Subject*: [ale] simple math in bash*From*: geof at abraxis.com (Geoffrey Myers)*Date*: Mon, 17 Nov 1997 23:50:08 -0500

Chris Hamilton wrote: > > > I can't remember how to do simple math in bash. I used to know but I cant find > > > > Don't know whether there is an easier way, but, I have always > > used "dc" to do math in shell scripts. Ex, adding 1 + 1 would be: > > > > echo "1 1 + p q" | dc > > I either use bc (interactively) or expr. > > E.g. $ expr 1 + 1 expr is a hog, using the foo=$((1 + 1)) is much faster. A little benchmarking, first ksh: i=0; time while [ $i -le 1000 ]; do i=`expr $i + 1` done;print $i 1001 32.47s real 0.89s user 2.29s system i=0; time while [ $i -le 1000 ]; do ((i=i + 1)) done;print $i 1001 0.45s real 0.42s user 0.00s system Some real major diffences. This is ksh, but the tests under bash ( using the i=$((i + 1)) ) although not as impressive as ksh, they are substantial. Same while loop: i=`expr $i + 1` 14.36user 13.50system 0:35.38elapsed 78%CPU (0avgtext+0avgdata 0maxresident)k i=$((i + 1)) 8.65user 0.01system 0:09.28elapsed 93%CPU (0avgtext+0avgdata 0maxresident)k So, if you're going to do math, better use ksh. :) > > > Spang! > > --- > Christopher Hamilton Internal System Administrator > chrish at ifsintl.com IFS International, Inc. -- Until later: Geoffrey geof at abraxis.com

- Prev by Date:
**[Fwd: [ale] simple math in bash]** - Next by Date:
**[ale] C++ Final Draft Standard approved!** - Previous by thread:
**[ale] simple math in bash** - Next by thread:
**[ale] how to see if a host is up on a network** - Index(es):