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

时间:2015-01-13 15:55:10

标签: bash

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

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

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

2 个答案:

答案 0 :(得分:5)

使用bash的数学内置。它只打印出整数/整数。因此,如果您想丢弃/截断小数位,请使用以下内容:

echo $(((11*100)/531)) # prints 2

答案 1 :(得分:3)

尝试使用Awk - 获取浮点数

例如:

NUM=44; awk -v NUM=$NUM 'BEGIN { print  ((NUM - 20) / 45) }'