Se tiver certeza de que wlan0
é a interface, você pode retornar as informações apenas para essa interface com:
ifconfig wlan0
Agora que você tem apenas uma linha com Bcast:
(eliminando tail
), é possível usar sed
para combinar as funções grep
e cut
:
ifconfig wlan0 | sed -n 's/^.*Bcast:\(.*\) .*$//p'
Nesse caso, sed -n
elimina a impressão rotineira de linhas da entrada, e a string de pesquisa corresponde à linha inteira, enquanto marca o que fica entre Bcast:
e o próximo espaço: a substituição é somente esse campo marcado e /p
substitui o -n
e força a impressão. Note que para atribuir esta string a um alias você precisará usar aspas duplas e escapar de alguns dos caracteres com barras invertidas, ou usar aspas simples, substituindo aquelas no comando acima por '\''
(embora você possa omitir o resultado final ''
).
Por fim, se você quiser ter certeza de que wlan0
é a interface que deseja e se não há outros configurados para acesso à Internet, você pode descobrir qual interface está sendo usada (talvez seja necessário instalar networkctl
):
networkctl status | sed -n 's/^.*Gateway: .* on \(.*$\)//p'
Isso usa sed
na saída networkctl
semelhante a antes. Agora você pode combiná-los:
ifconfig $(networkctl status |\
sed -n 's/^.*Gateway: .* on \(.*$\)//p')|sed -n 's/^.*Bcast:\(.*\) .*$//p'
Isso não é nada legal, mas cobre a maioria das bases - em particular, se o seu wireless não estiver funcionando e você usar Ethernet, ele ainda funcionará. Se você tiver as duas interfaces trabalhando juntas, isso se tornará mais complicado ainda: deixarei que você trabalhe nisso (dica: você precisará usar /Gateway/,$
como o intervalo de linhas para o comando s
e uma maneira de excluir as entradas do IPv6).