在sh脚本中计算模数

问题描述 投票:14回答:3

我正在开发一个sh脚本,我在一个WHILE循环中,每次迭代变量都会增加,我想每五次迭代保存一个文件。

我通常做的(比如说C)就是做一个if ( n % 5 == 0)测试,但我不知道这是否可能在这里......?如果不是,有没有人有任何想法可以完成工作?

干杯!

sh modulo
3个回答
16
投票

在shell中进行数学运算时应该使用bc

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

37
投票

如果你的sh真的是sh而不仅仅是bash以sh运行那么这将很好地工作

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

如果你的sh真的是bash,那就把你的测试放在(( ))

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

3
投票
if (($n%5==0))
then
    # do something
fi
© www.soinside.com 2019 - 2024. All rights reserved.