Calculate modulo in sh script

tiswas picture tiswas · Nov 30, 2011 · Viewed 98.7k times · Source

I am working on an sh script in which I am in a WHILE loop where a variable gets incremented every iteration, and I'd like to save a file every five iterations.

What I'd normally do (say in C) would be to do an if ( n % 5 == 0) test, but I don't know whether that's possible here..? If it isn't, does anyone have any ideas that would get the job done?

Cheers!

Answer

user353608 picture user353608 · Nov 30, 2011

If your sh really is sh and not just bash being run as sh then this will work just fine

if [ `expr $n % 5` -eq 0 ]
then
    # do something
fi

If your sh is really bash then put your test in (( )) like so

if (( $n % 5 == 0 ))
then
     # do something
fi