私は素晴らしいwmとbashetsを使用して利用可能なメモリを表示する小さなテキストウィジェットを作成しています。合計キロバイトをギガバイト(例:1.2)に変換したいと思います。これが私が思いついたものです...
mem_Kb=$(grep -i memfree /proc/meminfo | cut -d: -f2 | tr -d [kB] | sed "s/^[ \t]*// ; s/[ \t]*$//")
mem_Gig=$(echo "scale = 1 ; $mem_Kb / 1000000" | bc )
echo mem_Gig: $mem_Gig
より良い、きれいな方法は何ですか?
ベストアンサー1
ただ使用してください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
したがって、あなたの場合は次のようになります。
$ mem_Gig=`free -h | awk '$2~/buf/{print $4}'`
$ echo $mem_Gig
5.2G
から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.
したがって、1024の代わりに1000を使用するには、次のようにします。
$ mem_Gig=`free -h --si | awk '$2~/buf/{print $4}'`
$ echo $mem_Gig
5.5G