dotfiles/local/bin/sb-memory
2025-07-02 08:35:35 +03:30

29 lines
1.1 KiB
Bash
Executable file

#!/bin/sh
_openbsd() {
TOTAL="$(free | awk '/^Mem:/ {print $2}')"
MUSED="$(top -b -n 1 | grep -o 'Real.*' | sed 's/Real: //' | sed 's/\/.*//')"
printf "$MUSED" | egrep "[0-9]{4}" > /dev/null && FUSED="$(printf "$MUSED" | cut -c -2 | sed 's/./.&/2')G" || FUSED=$MUSED
printf "$FUSED/$TOTAL\n"
}
_freebsd() {
TOTAL="$(freecolor -om | awk '/^Mem:/ {print $2}')"
MUSED="$(freecolor -om | awk '/^Mem:/ {print $3}')"
printf "$MUSED" | egrep "[0-9]{4}" > /dev/null && FUSED="$(printf "$MUSED" | cut -c -2 | sed 's/./.&/2')G" || FUSED=""$MUSED"M"
printf "$TOTAL" | egrep "[0-9]{4}" > /dev/null && TOTAL="$(printf "$TOTAL" | cut -c -2 | sed 's/./.&/2')G" || FUSED=$TOTAL
printf "$FUSED/$TOTAL\n"
}
_linux() {
TOTAL="$(free -h | awk '/^Mem:/ {print $2}')"
MUSED="$(free -h | awk '/^Mem:/ {print $3}')"
printf "$MUSED" | grep "[0-9]{4}" > /dev/null && FUSED="$(printf "$MUSED" | cut -c -2 | sed 's/./.&/2')G" || FUSED=$MUSED
printf "$FUSED/$TOTAL\n" | sed 's/Gi/GB/g' | sed 's/Mi/MB/g'
}
case $(uname) in
Linux) _linux ;;
OpenBSD) _openbsd ;;
FreeBSD) _freebsd ;;
esac