我正在尝试打印以GB为单位的内存总量,但仅打印前三位数。我尝试过割伤和镇静,没有运气。
#!/bin/bash
echo MemoryTotal $(( $(cat /proc/meminfo | grep MemTotal | awk '{ print $2 }') / 1024 ))
收益:
内存总计257669GB
但是我想打印出来:
内存总计257GB
答案 0 :(得分:4)
使用free -g
:
free -g | awk 'NR==2{print $2}'
答案 1 :(得分:2)
由于/proc/meminfo
以KB为单位输出内存大小,而您希望以GB为单位输出,因此您应该做的是将KB中的数字除以1024 * 1024。
echo MemoryTotal $(( $(grep MemTotal /proc/meminfo | awk '{ print $2 }') / 1024 / 1024))GB
答案 2 :(得分:0)
使用sed
+ numfmt
工具:
sed '1 s/ \(.\)B$/\U\1/;q' /proc/meminfo | numfmt --field 2 --from=auto --to=iec
示例输出(来自当前操作系统)
MemTotal: 2.2G