我需要检查数字是否为偶数。

这是我尝试过的。

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

09-25 18:08