Подтвердить что ты не робот

Как получить полную физическую память в Bash, чтобы присвоить ее переменной?

Как я могу получить полную физическую память в байтах моего Linux-ПК?

Мне нужно назначить его переменной bash script.

4b9b3361

Ответ 1

grep MemTotal /proc/meminfo | awk '{print $2}'  

Возвращаемое число находится в KB

Ответ 2

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

Ответ 3

Как насчет

var=$(free | awk '/^Mem:/{print $2}')

Ответ 4

Я придумал это в предположении, что физическая память будет первым номером в свободном выходе:

free -m | grep -oP '\d+' | head -n 1

Это позволяет вам настроить бесплатный вывод желаемого устройства (-m, -g,...) и не зависит от системного языка (другие ответы зависят от строки "Mem:" в свободном выпуске, что может изменение на основе языка.

Ответ 5

Глупо встроенная версия 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.