【问题标题】:I need to echo multiplication with decimals in bash [duplicate]我需要在bash中用小数回显乘法[重复]
【发布时间】:2017-11-14 22:42:29
【问题描述】:

我正在尝试将小数相乘并回显它们

这是我目前所拥有的......

#!/bin/bash

gbspace=1
limitUsers=2
limitInstances=2

echo $(($gbspace*0.5)) GB Webspace
echo limitUsers:$(($limitUsers*5))
echo limitUsers:$(($limitUsers*5)), limitInstances:$(($limitInstances)) \| Hi

这就是我得到的......

root@home /home/work # bash run
run: line 7: 1*0.5: syntax error: invalid arithmetic operator (error token is ".5")
limitUsers:10
limitUsers:10, limitInstances:2 | Hi

【问题讨论】:

  • Bash 只做整数运算。您可以修改逻辑以使用整数运算,或者使用外部程序进行运算。
  • 顺便说一句,与其乘以0.5,不如除以2

标签: bash decimal echo


【解决方案1】:

使用大多数系统上预装的bc,带有 -l 标志以启用浮点运算:

echo $(echo "$gbspace*0.5" | bc -l) "GB Webspace"

请注意,您必须小心引用,并且必须使用echo 命令将要计算的表达式通过管道传递给bc

【讨论】:

  • 请注意How to Answer 中的“回答好问题”部分,特别是对“之前已经被问过并回答过很多次”的问题的引用。跨度>
  • Fabien 的回答正是我所需要的。我确实事先看到了其他线程,但不明白如何正确实现它。谢谢。
  • @CharlesDuffy:会的。感谢指点和提醒!
猜你喜欢
  • 1970-01-01
  • 2019-05-30
  • 2016-10-16
  • 2013-07-31
  • 2016-07-04
  • 2021-09-30
  • 2013-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多