检查十进制数是否在bc的范围内

马可

我写了这个,如果那显然行不通,但我仍然无法克服它:

#LASTEFFECTIVEHASH
if (( $(echo "$LASTEFFECTIVEHASHMINVAL < $LASTEFFECTIVEHASH < $LASTEFFECTIVEHASHMAXVAL" | $BC -l) )); then
                echo "$DATESTAMP - LASTEFFECTIVEHASH=$LASTEFFECTIVEHASH is between $LASTEFFECTIVEHASHMINVAL and $LASTEFFECTIVEHASHMAXVAL"|tee -a $LOGFILE
else
                echo "$DATESTAMP - LASTEFFECTIVEHASH=$LASTEFFECTIVEHASH is not between $LASTEFFECTIVEHASHMINVAL and $LASTEFFECTIVEHASHMAXVAL"|tee -a $MSGFILE $LOGFILE
fi

但是,当值超出范围时,将导致以下结果:

20170810003646 - LASTEFFECTIVEHASH=139.2 is between 104.9 and 136.9

我遵循数学语法:如果x> 104.9和<136.9,则在数学中编写它104.9 < x < 136.9但是我怀疑bash / bc与我的数学老师的表现有所不同。

如果公元前不超过137个,那将是很好;)

约翰1024

与例如python不同,bc它不支持链式比较:

a < b < c

要执行两个比较并要求两个都为真,请使用逻辑与(需要GNU bc):

(a < b) && (b < c)

例如:

$ a=104.9; b=136; c=136.9; if echo "($a < $b) && ($b < $c)" | bc -l | grep -q 1; then echo True; else echo False; fi
True
$ a=104.9; b=137; c=136.9; if echo "($a < $b) && ($b < $c)" | bc -l | grep -q 1; then echo True; else echo False; fi
False

POSIX BC

如果您没有GNU bc,则可以用乘法替换逻辑和。

$ a=104.9; b=136; c=136.9; if echo "($a < $b)*($b < $c)" | bc -l | grep -q 1; then echo True; else echo False; fi
True
$ a=104.9; b=137; c=136.9; if echo "($a < $b)*($b < $c)" | bc -l | grep -q 1; then echo True; else echo False; fi
False

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查浮点值是否在一定范围内并且具有给定的十进制数?

来自分类Dev

使用awk在十进制范围内搜索

来自分类Dev

在Java中生成特定范围内的十进制随机数?

来自分类Dev

从范围内的表中获取数据。范围是db2中的十进制

来自分类Dev

使用位掩码对范围内的十进制数字进行编码

来自分类Dev

如何找到给定范围内以零位十进制数字结尾的浮点值?

来自分类Dev

如何找到给定范围内以零位十进制数字结尾的浮点值?

来自分类Dev

快速检查数字是否为十进制

来自分类Dev

检查数据框列是否包含十进制值

来自分类Dev

如何检查某些值是否不在 for 循环内的列表中(二进制到十进制程序)

来自分类Dev

检查数字是否在Python范围内

来自分类Dev

检查BigDecimal值是否在范围内

来自分类Dev

检查编号是否在8051的范围内

来自分类Dev

检查列表值是否在范围内

来自分类Dev

检查日期是否在日期范围内

来自分类Dev

检查元组是否在范围内

来自分类Dev

检查数字是否在javascript范围内

来自分类Dev

检查timeofday是否在指定范围内

来自分类Dev

检查UTC时间是否在范围内

来自分类Dev

Formik,Yup-如何检查十进制数

来自分类Dev

检查数字 1 在十进制数中的位置

来自分类Dev

大十进制数

来自分类Dev

SQL-连接十进制范围

来自分类Dev

我如何使bc以零开头的十进制分数

来自分类Dev

流内的十进制总和

来自分类Dev

如何检查DOM元素是否在范围内

来自分类Dev

检查Excel中范围内是否存在值

来自分类Dev

检查列的每一行是否在范围内

来自分类Dev

如何检查经纬度是否在城市范围内