¿Cómo puedo obtener la memoria física total en bytes de mi PC con Linux?¿Cómo obtener la memoria física total en Bash para asignarla a una variable?
Necesito asignarlo a una variable de script bash.
¿Cómo puedo obtener la memoria física total en bytes de mi PC con Linux?¿Cómo obtener la memoria física total en Bash para asignarla a una variable?
Necesito asignarlo a una variable de script bash.
grep MemTotal /proc/meminfo | awk '{print $2}'
El número devuelto es en KB
Parece que ha respondido a su propia pregunta. sin embargo, use un comando awk para hacer el trabajo. 'awk '/ MemTotal/{print $ 2}'/proc/meminfo' – ghostdog74
Para incluir la conversión a una base diferente (por ejemplo, GB) puede usar' grep MemTotal/proc/meminfo | awk '{print $ 2}' | xargs -I {} echo "scale = 4; {}/1024^2" | bc' – turtlemonvh
¿Qué tal
var=$(free | awk '/^Mem:/{print $2}')
no hay espacios entre el signo "=" al asignar la variable. use la sintaxis '$()' siempre que sea posible. – ghostdog74
@ ghostdog74: gracias (post fijado) – kiwicptn
grep _and_ awk? –
phymem=$(awk -F":" '$1~/MemTotal/{print $2}' /proc/meminfo)
o el uso libre de
phymem=$(free|awk '/^Mem:/{print $2}')
o el uso de la cáscara
#!/bin/bash
while IFS=":" read -r a b
do
case "$a" in
MemTotal*) phymem="$b"
esac
done <"/proc/meminfo"
echo $phymem
Me gusta porque puedes pasar '-m',' -g', etc., a 'free' para obtenerlo en unidades diferentes :) –
Muy buena respuesta resumida, gracias. Además, cambiaría la línea apropiada a 'mientras leía -r a b c' para quitar las unidades. – dess
Silly inline python versión, que se ve demasiado complicada, 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.
Creo que tiene una "r" perdida en su "re.search (r"^MemTotal ... ") ' – kd88
@ kd88 Creo que está bien. Esa es solo la notación de una cadena sin formato en python. Consulte la sección de introducción de los documentos de expresiones regulares para obtener una explicación: https://docs.python.org/2/library/re.html – turtlemonvh
me ocurrió con éste bajo el supuesto, que la memoria física será el primer número de la salida del libre:
free -m | grep -oP '\d+' | head -n 1
Esto le permite configurar la libertad de salida de 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 del idioma.
Esta pregunta tiene muy poco sentido tal como está. Intente reescribirlo para ser más específico – Gabe
Lo acabo de reescribir. Para mí es muy específico, tengo que obtener la memoria física total (RAM) de mi PC y asignar a una variable en mi script bash. – Neuquino