2012-11-12 56 views
0

檢查偶數的條件 - 確定如何寫在bash

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

如何檢查奇數?

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

感謝

回答

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」 自的剩餘奇數除以二是一個:

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

但前者(不等於0)是更普遍的情況,所以我會更喜歡它。

+0

否定表達式可能需要一點練習才能在開始時適應,但是當你這樣做時,它們是無價。 +1 – Jite

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 
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 
+0

有點空白,將有助於:'((N%2 == 0))' –

+0

@glennjackman這不是強制性的了! –

+0

爲真。但是爲可讀性和可維護性編寫代碼非常重要。 –

0

我喜歡簡單:

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

x=7; ((x%2)) && echo odd