Вычислить по модулю в sh script

Я работаю над sh script, в котором я нахожусь в цикле WHILE, где переменная увеличивается на каждую итерацию, и я хотел бы сохранить файл каждые пять итераций.

То, что я обычно делал (скажем, на C), было бы сделать тест if ( n % 5 == 0), но я не знаю, возможно ли это здесь..? Если это не так, есть ли у кого-нибудь идеи, которые могли бы выполнить эту работу?

Ура!

Ответ 1

Вы должны использовать bc при выполнении математики в оболочке

if [ `echo "3 % 2" | bc` -eq 0 ]

Ответ 2

Если ваш sh действительно является sh, а не только bash выполняется как sh, тогда это будет работать просто отлично

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

Если ваш sh действительно bash, тогда поставьте свой тест в (( )) так

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