#!/bin/sh 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 "%4sB ↕ %4sB\\n" $(numfmt --to=iec $rx $tx)