我尝试验证一个带小数的数字是否在指定范围内,我的意思是像下面的例子:
rangeA=58.5
rangeB=61.5
number=62.7
if [[ ( "$number" > "$rangeA" | bc ) || ( "$number" = "$rangeA" | bc ) ]] && [[ ( "$number" < "$rangeB" | bc ) || ( "number" = "rangeB" | bc ) ]]; then
Run Code Online (Sandbox Code Playgroud)
但我被困在这个操作中,我很感激你的帮助谢谢
Bash<和>比较字符串,-lt并-gt比较整数,比较浮点数的唯一方法是外壳bc(1)(你这样做,但你做错了):
rangeA=58.5
rangeB=61.5
number=62.7
if (( $(bc <<<"$number >= $rangeA && $number <= $rangeB") )); then
echo yes
else
echo no
fi
Run Code Online (Sandbox Code Playgroud)
bc将 1 或 0 打印到标准输出,bash 的算术上下文 ( ((expression))) 将其测试为零并相应地设置状态代码。
| 归档时间: |
|
| 查看次数: |
2902 次 |
| 最近记录: |