我怎样才能编写一个 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"
(通过跳过一个除法来节省微秒数)
编辑:删除了表达,不知!
何故是历史和逻辑不