我對此問題有以下問題。總物理記憶體的值是否始終以 KB 顯示?因為我想用 GB 列印它并且我使用這個命令
grep MemTotal /proc/meminfo | awk '{$2=$2/(1024^2); print $2}'
我不確定是否應該添加 if 陳述句來證明grep MemTotal /proc/meminfo顯示 KB 值或其他值的命令
任何幫助,將不勝感激
uj5u.com熱心網友回復:
您不需要使用grep awk,您可以單獨執行此操作awk。從解釋的角度來看,我已將您嘗試的grep代碼合并到awk代碼本身中。在awk程式中,我正在檢查條件,如果第一個欄位是MemTotal:并且第三個欄位是kB在 GB 中列印第二個欄位的值(取自 OP 的嘗試代碼本身)。
awk '$1=="MemTotal:" && $3=="kB"{print $2/(1024^2)}' /proc/meminfo
或者,如果您想kB在第 3 次匹配不區分大小寫的匹配項,請嘗試以下代碼:
awk '$1=="MemTotal:" && $3~/^[kK][bB]$/{print $2/(1024^2)}' /proc/meminfo
uj5u.com熱心網友回復:
總物理記憶體的值是否始終以 KB 顯示?
是的,該單元kB在內核代碼中是固定的。參見:1和2
uj5u.com熱心網友回復:
如果您假設MemTotal:條目始終是 的第一行/proc/meminfo,則可以在不產生子 shell 或外部命令的情況下獲取 Gigabyte 值,并且僅使用適用于 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))"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/407340.html
標籤:
上一篇:將n個引數傳遞給bash腳本
