UNIX中十进制数逻辑的比较

时间:2014-07-28 10:28:18

标签: unix

如果是十进制值比较则不起作用。请调试代码并为我提供解决方案。请找到以下代码 提前致谢..

i=2.4524
j=2.430
s=0.2
sub=`echo "$i - $j" | bc`
if (( $sub <= $s ))
then
echo "red"
else
echo "green"
fi

2 个答案:

答案 0 :(得分:0)

尝试这一点我认为这将解决您的问题

    i=2.4524
    j=2.430
    s=0.2
    sub=`echo "$i - $j" | bc`
    if ( $sub le $s )
    then
    echo "red"
    else
    echo "green"
    fi

答案 1 :(得分:0)

使用expr

i=2.4524
j=2.430
s=0.2
sub=`echo "$i - $j" | bc`
if expr "$sub" '<=' "$s" > /dev/null; then
    echo "red"
else
    echo "green"
fi

使用bc也可以是一个选项,但由于你必须召唤一个子shell并且你必须阅读并将其输出与1进行比较,效率会降低。

if [ "`echo "$sub <= $s" | bc`" = 1 ]; then
    echo "red"
else
    echo "green"
fi