Minimamente testado; para obter melhores resultados, em cada [ ]
, adicione uma guia dentro dos colchetes:
networksetup -setdnsservers AirPort $(sed -ne 's/^[ ]*nameserver[ ]\+\([.:0-9A-Fa-f]\+\)//p' /etc/resolv.conf)
A expressão sed
extrai endereços de linhas que começam com a palavra nameserver
seguida por um endereço IPv4 ou IPv6. A construção $()
interpola a saída de sed
na linha de comando de networksetup
.
Se houver uma chance de que não haja nenhuma linha nameserver
em /etc/resolv.conf
, veja uma maneira relativamente simples:
nameservers=$(sed -ne 's/^[ ]*nameserver[ ]\+\([.:0-9A-Fa-f]\+\)//p' /etc/resolv.conf)
if [ -z "$nameservers" ]; then nameservers=empty; fi
networksetup -setdnsservers AirPort $nameservers