web-dev-qa-db-fra.com

Calculer le modulo dans le script sh

Je travaille sur un script sh dans lequel je suis dans une boucle WHILE où une variable est incrémentée à chaque itération, et je voudrais enregistrer un fichier toutes les cinq itérations.

Ce que je ferais normalement (disons en C) serait de faire un test if ( n % 5 == 0), mais je ne sais pas si c'est possible ici ..? Si ce n'est pas le cas, quelqu'un a-t-il des idées qui feraient le travail?

À votre santé!

14
tiswas

Vous devez utiliser bc lorsque vous faites des calculs dans Shell

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

Si votre sh est vraiment sh et pas seulement bash exécuté comme sh, cela fonctionnera très bien

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

Si votre sh est vraiment bash, mettez votre test dans (( )) ainsi

if (( $n % 5 == 0 ))
then
     # do something
fi
38
Iain
if (($n%5==0))
then
    # do something
fi
4
Siddharth Jain