bash脚本中浮点数比较的正确语法

bash脚本中浮点数比较的正确语法,bash,floating-point,Bash,Floating Point,在bash脚本中,由于bash脚本不支持浮点数,因此我无法根据此条件发出命令 if ([ $first_util -gt 0.10 ] || [ $first_util -le 1.00 ]) && [ $first_sig -ge $first_sig_min ]; then #state1 else #state2 fi 我希望第一个和第二个条件将首先使用“或”,然后使用第三个条件和“和”,但在这种情况下,所有数字都是浮点,而不是整数 如何解决这个问题

在bash脚本中,由于bash脚本不支持浮点数,因此我无法根据此条件发出命令

if ([ $first_util -gt 0.10 ] || [ $first_util -le 1.00 ]) && [ $first_sig -ge $first_sig_min ]; then
  #state1   
else
  #state2   
fi 
我希望第一个和第二个条件将首先使用“或”,然后使用第三个条件和“和”,但在这种情况下,所有数字都是浮点,而不是整数


如何解决这个问题?谢谢

您可以创建两个函数来授予
bc
处理浮点数的功能,如Mitch Frazier在Linux Journal上的这篇文章所述:


我相信您可以使用它作为基础来创建自己的函数来进行浮点数比较。我希望这有帮助

您可以使用
awk

first_util=0.2
first_sig=0.8
first_sig_min=0.9
awk_input="$first_util $first_sig $first_sig_min"
if awk '{ exit !(($1 > 0.1 || $1 <= 1.0) && ($2 >= $3)) }' <<< "$awk_input"; then
      echo "OK"
fi
first_util=0.2
第一个信号=0.8
第一信号最小值=0.9
awk_input=“$first_util$first_sig$first_sig_min”
如果awk{exit!($1>0.1 | |$1=$3))}