Ответ 1
grep MemTotal /proc/meminfo | awk '{print $2}'
Возвращаемое число находится в KB
Как я могу получить полную физическую память в байтах моего Linux-ПК?
Мне нужно назначить его переменной bash script.
grep MemTotal /proc/meminfo | awk '{print $2}'
Возвращаемое число находится в KB
phymem=$(awk -F":" '$1~/MemTotal/{print $2}' /proc/meminfo )
или используя бесплатный
phymem=$(free|awk '/^Mem:/{print $2}')
или используя оболочку
#!/bin/bash
while IFS=":" read -r a b
do
case "$a" in
MemTotal*) phymem="$b"
esac
done <"/proc/meminfo"
echo $phymem
Как насчет
var=$(free | awk '/^Mem:/{print $2}')
Я придумал это в предположении, что физическая память будет первым номером в свободном выходе:
free -m | grep -oP '\d+' | head -n 1
Это позволяет вам настроить бесплатный вывод желаемого устройства (-m, -g,...) и не зависит от системного языка (другие ответы зависят от строки "Mem:" в свободном выпуске, что может изменение на основе языка.
Глупо встроенная версия python, которая выглядит чрезмерно сложной, но на самом деле полезна.
freemem=$(echo -e 'import re\nmatched=re.search(r"^MemTotal:\s+(\d+)",open("/proc/meminfo").read())\nprint(int(matched.groups()[0])/(1024.**2))' | python)
Он возвращает память в GB.