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

liz*_*isk 31 bash

我该怎么改变它来检查是否val有偶数或奇数值?

val=2
if $((RANDOM % $val)); ...
Run Code Online (Sandbox Code Playgroud)

Fre*_*ihl 53

$ a=4

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

$ a=3

$ [ $((a%2)) -eq 0 ] && echo "even"
Run Code Online (Sandbox Code Playgroud)


Pau*_*aul 33

foo=6

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


che*_*ner 10

$(( ... ))只是一个表达.它的结果出现在bash需要命令的地方.

POSIX兼容的解决方案是:

if [ "$(( RANDOM % 2))" -ne 0 ]; 
Run Code Online (Sandbox Code Playgroud)

但既然RANDOM没有在POSIX中定义,你也可以使用正确的bash命令来执行作业:算术评估复合命令:

if (( RANDOM % 2 )); then
Run Code Online (Sandbox Code Playgroud)