¿Cómo capturar la primera dirección IP que proviene del ifconfigcomando?
ifconfig -a
enw178032: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 100.14.22.12  netmask 255.255.0.0  broadcast 100.14.255.255
        inet6 fe80::250:56ff:fe9c:158a  prefixlen 64  scopeid 0x20<link>
        ether 00:10:56:9c:65:8a  txqueuelen 1000  (Ethernet)
        RX packets 26846250  bytes 12068811576 (11.2 GiB)
        RX errors 0  dropped 58671  overruns 0  frame 0
        TX packets 3368855  bytes 1139160934 (1.0 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0Resultado Esperado:
IP=100.14.22.12
Respuestas:
Es mejor evitar el uso
ifconfigpara obtener una dirección IP en una secuencia de comandos que está en desuso en algunas distribuciones (por ejemplo, CentOS y otras, ya no la instala por defecto).En otros sistemas, la salida de ifconfig varía de acuerdo con el lanzamiento de la distribución (por ejemplo, la salida / espaciado / campos de
ifconfigdifiere de Debian 8 a Debian 9, por ejemplo).Para obtener la dirección IP con
ip, de manera similar, está preguntando:O mejor aún:
O, como preguntas "IP ="
Adaptando descaradamente la idea de @Roman
Salida normal:
De
man ip:Vea un ejemplo de por qué
ifconfigno se recomienda: BBB: `bbb-conf --check` que muestra las direcciones IP como` inet` - ifconfig woesPara entender por qué
ifconfigestá saliendo, vea Diferencia entre los comandos 'ifconfig' e 'ip'fuente
awk. Demasiada capacidad mental para mí, aún despertando. Eviteifconfig, no tiene futuro, y la posición de la dirección IP cambia, hay al menos dos versiones / implementaciones diferentes (?) Para Linux que conozco.-briefparámetro y su salida se vuelve más fácil de analizar ( 2015-08-31 : git.kernel.org/pub/scm/network/iproute2 /iproute2.git/commit/… )-oque de hecho parece útil para los guionesAwksolución:Salida de muestra:
fuente
fuente
ip addr | awk ' !/127.0.0.1/ && /inet/ { gsub(/\/.*/, "", $2); print "IP="$2 } '