如何获得在Bash的总物理内存将其分配给一个variables?

我怎样才能得到我的Linux PC的总字节数?

我需要将其分配给一个bash脚本variables。

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

返回的数字以KB为单位

 phymem=$(awk -F":" '$1~/MemTotal/{print $2}' /proc/meminfo ) 

或免费使用

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

或使用shell

 #!/bin/bash while IFS=":" read -rab 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 

这允许你自由地configuration你想要的单元输出(-m,-g,…),它独立于系统语言(其他答案取决于空闲输出中的“Mem:”string,可能会根据语言。

傻内联的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返回内存。