btw i use nix
1#!/usr/bin/env bash
2
3awk '
4/^MemTotal:/ {
5 mem_total=$2
6}
7/^MemFree:/ {
8 mem_free=$2
9}
10/^Buffers:/ {
11 mem_free+=$2
12}
13/^Cached:/ {
14 mem_free+=$2
15}
16/^SwapTotal:/ {
17 swap_total=$2
18}
19/^SwapFree:/ {
20 swap_free=$2
21}
22END {
23 swap_used=(swap_total-swap_free)/1024/1024
24 swap_free=swap_free/1024/1024
25 swap_total=swap_total/1024/1024
26
27 free=mem_free/1024/1024
28 used=(mem_total-mem_free)/1024/1024
29 total=mem_total/1024/1024
30
31 swap_pct=0
32 if (swap_total > 0) {
33 swap_pct=swap_used/swap_total*100
34 }
35
36 pct=0
37 if (total > 0) {
38 pct=used/total*100
39 }
40
41 printf(" %.f%%(%.f%%)\n", pct, swap_pct)
42}
43' /proc/meminfo