从 CLI 读取人类可读的系统内存?

Rob*_*ino 16 memory system-information

在 OS X 上,我得到了一个很好的人类可读系统内存,如下所示:

printf -v system_memory \
          "$(system_profiler SPHardwareDataType \
             | awk -F ': ' '/^ +Memory: /{print $2}')"
echo "$system_memory"
Run Code Online (Sandbox Code Playgroud)

打印出友好的:

4 GB
Run Code Online (Sandbox Code Playgroud)

尽管这在 Linux 上是正确的:

lshw -class memory
Run Code Online (Sandbox Code Playgroud)

它输出:

size: 4096MiB
Run Code Online (Sandbox Code Playgroud)

我需要痛苦地解析它并尝试将它变成一个和上面一样好的字符串。

我使用了错误的命令吗?

ter*_*don 33

如果这就是你所需要的,只需使用free

$ free -h | gawk  '/Mem:/{print $2}'
7.8G
Run Code Online (Sandbox Code Playgroud)

free返回内存信息,-h开关告诉它以人类可读的格式打印。

  • @Robottinosino,硬盘大小以 GB(10^9 字节)表示,而内存通常以 GiB(2^30 字节)表示,4.0G 可让您了解精度。使用 4GB,您不知道它是 4GB(或 4GiB?)还是 4.4GB 向下舍入为 4 或 3.6G 向上舍入为 4。 (5认同)