#!/bin/sh big="\e[11m" reset="\e[10m" update() { sum=0 for arg; do read -r i <"$arg" sum=$((sum + i)) done cache=/tmp/${1##*/} [ -f "$cache" ] && read -r old <"$cache" || old=0 printf %d\\n "$sum" >"$cache" printf %d\\n $((sum - old)) } rx=$(update /sys/class/net/[ew]*/statistics/rx_bytes) tx=$(update /sys/class/net/[ew]*/statistics/tx_bytes) printf "$big$reset%5sB $big$reset%5sB\\n" $(numfmt --to=iec "$rx" "$tx")