bash - 检查一个数字是否在 shell 中是偶数

标签 bash math

我需要检查一个数字是否是偶数。

这是我尝试过的。

newY="281"
eCheck=$(( $newY % 2 ))

echo $newY
echo $eCheck
while [ $eCheck -eq 0 ]; do
        newY=$((newY-1))
        eCheck=$(( $newY % 2 ))
        echo $newY
done

... 返回 eCheck = 1 怎么会这样? 281/2 = 140.5

我也尝试过使用 bc,但它进入了无限循环 eCheck=$(echo "scale=1;$newY%2"| bc)

最佳答案

Nici 是对的,“%”是模数,并给出除法的余数。

您的脚本可以简化如下:

if [[ $((var % 2)) -eq 0 ]];
   then echo "$var is even"; 
   else echo "$var is odd"; 
fi

关于bash - 检查一个数字是否在 shell 中是偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17960817/

相关文章:

linux - 如何在 Red Hat Linux Server 中查找 RAM 大小?

bash - 如何使用 Docker 获取入口点脚本?

bash - 如何? Bash 循环、sed 并将当前循环的文件名插入 sed 模式空间

c - 使用 Cubature C 包对复杂函数进行数值积分

linux - 使用通配符排除具有特定后缀的文件

regex - 从 RedHat Linux 7 中的文件输出特定字符串 - 可能是正则表达式

java - 基于笛卡尔坐标点积的算法计算地理距离

ios - 检测多边形是否有相交线(领结)

c++ - 欧拉到四元数转换 PCL + Eigen

java - 使用随机生成的数字进行动画