如何用bash写一个条件

时间:2012-11-12 09:13:15

标签: 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 :(得分: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)是更一般的情况,所以我更喜欢它。

答案 1 :(得分: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

答案 2 :(得分: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

答案 3 :(得分:0)

我更喜欢简单:

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

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