Use apenas free
:
$ free -h
total used free shared buffers cached
Mem: 7.8G 6.8G 1.0G 0B 166M 4.2G
-/+ buffers/cache: 2.5G 5.2G
Swap: 7.8G 548K 7.8G
Então, no seu caso:
$ mem_Gig='free -h | awk '$2~/buf/{print $4}''
$ echo $mem_Gig
5.2G
De man free
:
-h, --human
Show all output fields automatically scaled to
shortest three digit unit and display the
units of print out. Following units are used.
B = bytes
K = kilos
M = megas
G = gigas
T = teras
If unit is missing, and you have petabyte of
RAM or swap, the number is in terabytes and
columns might not be aligned with header.
--si Use power of 1000 not 1024.
Então, se você quiser usar 1000, não 1024, você pode fazer:
$ mem_Gig='free -h --si | awk '$2~/buf/{print $4}''
$ echo $mem_Gig
5.5G