我正在尝试找到一种方法来四舍五入一些数字。
我发现的主题:https ://stackoverflow.com/questions/2395284/round-a-divided-number-in-bash
我在我的 bash 脚本中使用以下命令..
免费-h | gawk '/Mem:/{print $2}' | awk 'FNR == 1 {打印 $1 "B"}')
以下代码将显示我已安装的总内存量。目前,我得到 3.7GB。问题是,我需要将其四舍五入到 4GB。
我有一个脚本,它向我的机器请求一堆信息,并将其全部回显。(Prolly 应该使用不同的东西,但还没有尝试过其他任何东西,因为这是我正在从事的项目之一。
memory=$(free -h | gawk '/Mem:/{print $2}' | awk 'FNR == 1 {print $1 "B"}')
回声$内存
现在它回显了 3.7GB,如下所述。我尝试了不同的方法,但似乎无法达到 4GB。
您可以执行以下操作:
(
LC_ALL=C
以确保使用.
十进制基数打印数字(在使用逗号作为十进制基数的语言环境中,3.7G 将输出为 3,7G))。在 GNU/Linux 系统上,您还可以执行以下操作:
或者:
(应对十进制基数不是的语言环境
.
)。请注意,
free
在 Linux 上报告MemTotal
/proc/meminfo 的该字段。根据 proc(5),这是 总可用 RAM(即物理 RAM 减去一些保留位和内核二进制代码)。正如@StephenKit 所指出的,对于物理 RAM 和 PC,您最好使用dmidecode
从 BIOS 获取信息,尽管您需要超级用户权限:如果你想四舍五入到小数点后 2,这里有一些简单的例子: