#!/bin/bash

DEV="eth0"

echo "Monitoring $DEV:"

STR=`cat /proc/net/dev | grep $DEV | cut -d':' -f2 | tr -s '[:blank:]' ':'`

i=1
o=9

IN=`echo $STR | cut -d':' -f$i`
OUT=`echo $STR | cut -d':' -f$o`

if [ -z $IN ]
then
  i=2
  o=10
fi

IN=`echo $STR | cut -d':' -f$i`
OUT=`echo $STR | cut -d':' -f$o`

sleep 1s

while true
do
  STR=`cat /proc/net/dev | grep $DEV | cut -d':' -f2 | tr -s '[:blank:]' ':'`

  LAST_IN=$IN
  LAST_OUT=$OUT

  IN=`echo $STR | cut -d':' -f$i`
  OUT=`echo $STR | cut -d':' -f$o`

  DIFF_IN=`echo \($IN - $LAST_IN\) / 1024 | bc`
  DIFF_OUT=`echo \($OUT - $LAST_OUT\) / 1024 | bc`

  echo -en "\r                                              \rIn: $DIFF_IN kb/s\tOut: $DIFF_OUT kb/s"

  sleep 1s
done
