0

检查偶数 - 好的

if [ $(( $n % 2 )) -eq 0 ]
then
  echo "$n is even number"
fi

怎么查奇数?

if [ $(( $n % ????? )) -eq 0 ]
then
  echo "$n is odd number"
fi

感谢

4

4 回答 4

4

使用“不等于 0”:

if [ $(( $n % 2)) -ne 0 ]
then
    echo "$n is odd"
fi

另见:http ://tldp.org/LDP/abs/html/comparison-ops.html

您也可以使用“n%2 等于 1”,因为奇数除以 2 的余数是 1:

if [ $(( $1 % 2)) -eq 1 ]
then
    echo "$1 is odd"
fi

但前者(不等于0)是更一般的情况,所以我更喜欢它。

于 2012-11-12T09:19:28.567 回答
2

上面的所有答案都使用一个[已过时的方括号bash(我们正在谈论bash,对吗?)。确定奇数或偶数的最佳n做法是:

if (( n%2==0 )); then
    printf "%d is even\n" $n
else
    printf "%d is odd\n" $n
fi

或者,按照 OP 的要求,即检查是否n为奇数:

if (( n%2 )); then
    printf "%d is odd\n" $n
fi
于 2012-11-12T13:49:04.890 回答
0
echo -n "Enter numnber : "
read n 
rem=$(( $n % 2 )) 
if [ $rem -eq 0 ]then  
   echo "$n is even number"
else  
  echo "$n is odd number"
fi
于 2012-11-12T09:21:17.587 回答
0

我更喜欢简单的:

x=8; ((x%2)) || echo even

x=7; ((x%2)) && echo odd
于 2014-12-04T17:25:51.763 回答