How to compare two decimal numbers in bash/awk?

前端 未结 7 2188
傲寒
傲寒 2020-12-08 15:09

I am trying to compare two decimal values but I am getting errors. I used

if [ \"$(echo $result1 \'>\' $result2 | bc -l)\" -eq 1 ];then

7条回答
  •  南方客
    南方客 (楼主)
    2020-12-08 15:53

    You can also echo an if...else statement to bc.

    - echo $result1 '>' $result2
    + echo "if (${result1} > ${result2}) 1 else 0"
    
    (
    #export IFS=2  # example why quoting is important
    result1="2.3" 
    result2="1.7" 
    if [ "$(echo $result1 '>' $result2 | bc -l)" -eq 1 ]; then echo yes; else echo no;fi
    if [ "$(echo "if (${result1} > ${result2}) 1 else 0" | bc -l)" -eq 1 ];then echo yes; else echo no; fi
    if echo $result1 $result2 | awk '{exit !( $1 > $2)}'; then echo yes; else echo no; fi
    )
    

提交回复
热议问题