Doing a modulo in /bin/sh??

Gary Kline kline at tao.thought.org
Wed Aug 31 18:35:30 GMT 2005


On Wed, Aug 31, 2005 at 11:18:57AM -0700, Philip Hallstrom wrote:
> >	I can grab the results of "w=$date+%U)"; in C an use the modulo
> >	operator; is there a way to do this is /bin/sh?  ot zsh?
> >
> >	tia, guys,
> >
> >	gary
> >
> >#/bin/sh
> >w=$(date +%U)
> >echo "w is $w";
> >(even=$(w % 2 ));       ## flubs.
> >echo "even is $even";       ## flubs.
> >
> >if [ $even -eq 0 ]       ## flubs, obv'ly.
> >then
> >       echo "week is even";
> >else
> >       echo "week is odd";
> >fi
> 
> Take a look at 'expr'....
> 
> philip at foxtrot:~ 
> % expr 1 % 2
> 1
> philip at foxtrot:~ 
> % expr 2 % 2
> 0
	Thankee, sir; I forgot that with ash/sh/<&c>, y'gotta use
	expr; and inside backticks in cases like this one. 

	gary


#/bin/sh
w=$(date +%U)
echo "w is $w";
even=`expr ${w} % 2`;

echo "even is $even";
if [ $even -eq 0 ]
then
        echo "week is even";
else
        echo "week is odd";
fi


-- 
   Gary Kline     kline at thought.org   www.thought.org     Public service Unix



More information about the freebsd-questions mailing list