#!/usr/bin/env bash # Bandwidth (Mbit/s) # v0.0.1 # Kaspars Mickevics # fxlv # Displays bandwidth usage for a network interface in Megabits/s # ifstat # https://cloud.githubusercontent.com/assets/2462211/12748504/584bbcea-c9b3-11e5-8109-ad8fdcefdc75.png # string(VAR_NETWORK_INTERFACE="en0"): The interface to track (Usual interface for MacOS wifi is en0) # based on bandwidth.1s.sh by Ant Cosentino if [ ! -e /usr/local/bin/ifstat ]; then echo "Please install ifstat or change the path to it in the script." exit 1 fi function kilo_to_mega { # in networking 1 mbit is 1000 kilobits (not 1024) printf "%0.3f\n" "$(bc -q <<< scale=3\;"${1}"/1000)" } function get_ifstat { IFSTAT_INTERFACE=$1 # 1 sample for 0.5 second interval # outputs two values (in/out) in kilobits per second /usr/local/bin/ifstat -n -w -i "${IFSTAT_INTERFACE}" -b 0.5 1 | tail -n 1 } function print_ifstat { kbits_in=$(echo "$1" | awk '{ print $1 }') kbits_out=$(echo "$1" | awk '{ print $2 }') mbits_in=$(kilo_to_mega "$kbits_in") mbits_out=$(kilo_to_mega "$kbits_out") echo "▼ $mbits_in - $mbits_out ▲" } print_ifstat "$(get_ifstat ${VAR_NETWORK_INTERFACE})" echo "---"