una - scripts bash ejemplos
¿Cómo obtener la memoria física total en Bash para asignarla a una variable? (5)
¿Cómo puedo obtener la memoria física total en bytes de mi PC con Linux?
Necesito asignarlo a una variable de script bash.
Qué tal si
var=$(free | awk ''/^Mem:/{print $2}'')
Se me ocurrió esto bajo la suposición de que la memoria física será el primer número en producción gratuita:
free -m | grep -oP ''/d+'' | head -n 1
Esto le permite configurar de forma gratuita la unidad que desea (-m, -g, ...) y es independiente del idioma del sistema (otras respuestas dependen de la cadena "Mem:" en la salida de Free, que puede cambiar en función de el idioma.
Silly inline python, que parece demasiado complicado, pero en realidad es útil.
freemem=$(echo -e ''import re/nmatched=re.search(r"^MemTotal:/s+(/d+)",open("/proc/meminfo").read())/nprint(int(matched.groups()[0])/(1024.**2))'' | python)
Devuelve la memoria en GB.
grep MemTotal /proc/meminfo | awk ''{print $2}''
El número devuelto está en KB
phymem=$(awk -F":" ''$1~/MemTotal/{print $2}'' /proc/meminfo )
o usando gratis
phymem=$(free|awk ''/^Mem:/{print $2}'')
o usando caparazón
#!/bin/bash
while IFS=":" read -r a b
do
case "$a" in
MemTotal*) phymem="$b"
esac
done <"/proc/meminfo"
echo $phymem