ipa=$(ifconfig | perl -lane '/inet addr:(\S+)/ and $1 !~ "^127" and print $1')
Veja também aqui para uma infinidade de alternativas.
Por exemplo. usando grep :
ipa=$(ifconfig | grep -Po 'inet addr:\K[^\s]+' | grep -v '^127')
Explicação:
ipa=$( ) atribui a saída do comando entre parênteses à variável ipa
ifconfig show interfaces e seus endereços. Você pode preferir a saída do filtro ip address e | grep -Po 'inet addr:\K[^\s]+' usando uma regex compatível com perl , imprima o texto correspondente novamente | grep -v '^127' filter, desta vez excluindo os valores ( -v ) iniciados ( ^ ) com 127
Para obter meu ip externo, geralmente faço:
dig +short myip.opendns.com @resolver1.opendns.com