linux OS 中的总物理内存值
value of total physical memory in linux OS
我有一个来自 this question 的问题。 总物理内存的值总是以 KB 为单位显示吗? 因为我想以 GB 为单位打印它,所以我使用了这个命令
grep MemTotal /proc/meminfo | awk '{=/(1024^2); print }'
我不确定是否应该添加 if 语句来证明命令 grep MemTotal /proc/meminfo
显示 KB 值或其他值
如有任何帮助,我们将不胜感激
您不需要使用 grep
+ awk
,您可以在单个 awk
中完成此操作。从解释的角度来看,我已将您尝试的 grep
代码合并到 awk
代码本身。在 awk
程序中,如果第一个字段是 MemTotal:
并且第三个字段是 kB
,我正在检查条件,然后以 GB 打印第二个字段的值(取自 OP 的尝试代码本身)。
awk '=="MemTotal:" && =="kB"{print /(1024^2)}' /proc/meminfo
OR 如果你想让 kB
在第 3 个不区分大小写的匹配项中尝试以下操作代码:
awk '=="MemTotal:" && ~/^[kK][bB]$/{print /(1024^2)}' /proc/meminfo
Is the value of the total physical memory always shown in KB?
如果您假设 MemTotal:
条目始终是 /proc/meminfo
的第一行,则可以在不生成子 shell 或外部命令的情况下获取千兆字节值,并且仅使用适用于 ksh、ash、dsh、zsh 或 bash:
的 POSIX-shell 语法
#!/usr/bin/env sh
IFS=': ' read -r _ memTotal _ < /proc/meminfo;
printf 'Total RAM: %d GB\n' "$((memTotal / 1024000))"
我有一个来自 this question 的问题。 总物理内存的值总是以 KB 为单位显示吗? 因为我想以 GB 为单位打印它,所以我使用了这个命令
grep MemTotal /proc/meminfo | awk '{=/(1024^2); print }'
我不确定是否应该添加 if 语句来证明命令 grep MemTotal /proc/meminfo
显示 KB 值或其他值
如有任何帮助,我们将不胜感激
您不需要使用 grep
+ awk
,您可以在单个 awk
中完成此操作。从解释的角度来看,我已将您尝试的 grep
代码合并到 awk
代码本身。在 awk
程序中,如果第一个字段是 MemTotal:
并且第三个字段是 kB
,我正在检查条件,然后以 GB 打印第二个字段的值(取自 OP 的尝试代码本身)。
awk '=="MemTotal:" && =="kB"{print /(1024^2)}' /proc/meminfo
OR 如果你想让 kB
在第 3 个不区分大小写的匹配项中尝试以下操作代码:
awk '=="MemTotal:" && ~/^[kK][bB]$/{print /(1024^2)}' /proc/meminfo
Is the value of the total physical memory always shown in KB?
如果您假设 MemTotal:
条目始终是 /proc/meminfo
的第一行,则可以在不生成子 shell 或外部命令的情况下获取千兆字节值,并且仅使用适用于 ksh、ash、dsh、zsh 或 bash:
#!/usr/bin/env sh
IFS=': ' read -r _ memTotal _ < /proc/meminfo;
printf 'Total RAM: %d GB\n' "$((memTotal / 1024000))"