如何在bash中检查变量是否具有偶数(非奇数)数值?

How do I check whether a variable has an even (not odd) numeric value in bash?

本问题已经有最佳答案,请猛点这里访问。

我应该如何更改这个值来检查val是否有偶数或奇数数值?

1
2
val=2
if $((RANDOM % $val)); ...


1
2
3
4
5
6
7
8
$ a=4

$ [ $((a%2)) -eq 0 ] && echo"even"
even

$ a=3

$ [ $((a%2)) -eq 0 ] && echo"even"

1
2
3
4
5
6
7
8
foo=6

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


$(( ... ))只是一个表达式。它的结果出现在bash期望命令的地方。

与POSIX兼容的解决方案是:

1
if ["$(( RANDOM % 2))" -ne 0 ];

但由于posix中也没有定义RANDOM命令,因此您也可以使用正确的bash命令来执行作业:算术计算复合命令:

1
if (( RANDOM % 2 )); then