在没有bc的bash脚本中划分数学?

jkj*_*000 2 bash

我有一个bash脚本,我需要计算一个百分比.例如,我将有两个数字(11和531,让我们说),理想的是计算11/531*100~ = 2

我不需要十进制值,实际上我想截断,从而向下舍入到最接近的整数.似乎要做浮点数学我需要调用bc或其他实用程序 - 还有另一种方法可以实现我正在寻找的东西吗?

我没有任何反对bc的东西,但是当我在我的脚本中使用它,并将脚本配置为nagios插件时,nagios出于某种未知的原因而拒绝继续.这是非常奇怪和烦人的,在挖掘太多之前我想知道在这种情况下我是否可以完全避免bc.

Mar*_*edt 6

使用bash的数学内置.它只打印出整数/整数.所以如果要丢弃/截断小数位,请使用以下内容:

echo $(((11*100)/531)) # prints 2
Run Code Online (Sandbox Code Playgroud)

  • 对.关键是先进行乘法运算*.否则,初始除法给出零,然后乘以100并仍然为零. (3认同)