dotfiles/.local/bin/memmon
2024-07-03 19:59:32 -04:00

22 lines
480 B
Bash
Executable file

#!/bin/sh
convert_to_human_readable() {
if [ "$1" -lt 1024 ]; then
printf "%.1fK\n" "$1"
elif [ "$1" -lt 1048576 ]; then
printf "%.1fM\n" $(($1 / 1024))
else
printf "%.1fG\n" $(($1 / 1048576))
fi
}
while read -r label size _; do
case $label in
MemTotal:) total_mem=$size ;;
MemAvailable:) free_mem=$size ;;
esac
done </proc/meminfo
used_mem=$((total_mem - free_mem))
printf '%s (%s%%)\n' "$(convert_to_human_readable "$used_mem")" $((used_mem * 100 / total_mem))