Por que não usar ip ao invés do ifconfig , e pular todos os greps e cortes extras, já que o awk pode fazer isso.
Então, um comando como ip addr show dev eth0 | awk '/^ +inet / {split($2,a,"/"); print a[1]}'
Em qualquer caso, a maior parte do seu problema em seus comandos de exemplo tem a ver com o tipo de aspas que você escolhe e como o bash as avalia.
Se você fizer algo como cfrancy@ws:~$ ssh root@srv01 echo "Hello $USER" , a saída que verá será Hello cfrancy e não Hello root , como esperado. Como você usou aspas duplas " em torno do seu comando para o sistema remoto, todas as variáveis são avaliadas antes de o comando ser enviado. O comando cfrancy@ws:~$ ssh root@srv01 echo 'Hello $USER' retornará Hello root , pois o $USER é avaliado no site remoto. É claro que você também precisa mudar ou escapar de suas outras citações dentro de seu comando composto para que as coisas funcionem corretamente.
De qualquer forma, mantendo o comportamento de cotação em mente, o comando provavelmente faria o que você quer. embora eu ache que minha solução que usa apenas ip e awk seja a melhor escolha, já que estou usando apenas 2 programas em vez de 4.
ssh -t $user@$remote_host '/sbin/ifconfig eth0 | grep "inet addr:"| grep -v "127.0.0.1" | cut -d: -f2 | awk "{ print $1}"'