如何编写一个 Bash 函数来检查整数是否为偶数?

如何编写一个 Bash 函数来检查整数是否为偶数?

我怎样才能编写一个 shell 谓词函数事件,该事件接受一个整数参数并测试它是否为偶数?

答案1

使用模数运算符

例子:

#!/bin/bash

iseven() {
    return $(($1 % 2))
}

if iseven 10; then echo 10 is even; else echo 10 is odd; fi
if iseven 11; then echo 11 is even; else echo 11 is odd; fi

答案2

检查余数:

var1=7
[ $((var1%2)) -ne 0 ] && echo "odd"
var2=4
[ $((var2%2)) -eq 0 ] && echo "even"

...是可行的方法。虽然我对你后面的问题编辑感到困惑,但你问的是“谓词函数事件“。

答案3

% 2实际上 bash 有一个按位与运算符,因此与 1 进行按位与在概念上与使用获取模 2 的余数相同

[ $((var & 1)) -ne 0 ] && echo "odd"
[ $((var & 1)) -eq 0 ] && echo "even"

(通过跳过一个除法来节省微秒数)

编辑:删除了表达,不知!何故是历史和逻辑不

相关内容