Comment capturer la première adresse IP qui vient de la ifconfig
commande?
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 0
Résultat attendu:
IP=100.14.22.12
Réponses:
Il vaut mieux éviter d'utiliser
ifconfig
pour obtenir une adresse IP dans un script car il est déconseillé dans certaines distributions (par exemple CentOS et autres, ne l'installez plus par défaut).Dans d'autres systèmes, la sortie d'ifconfig varie selon la version de la distribution (par exemple, la sortie / l'espacement / les champs de
ifconfig
diffèrent de Debian 8 à Debian 9, par exemple).Pour obtenir l'adresse IP avec
ip
, de la même manière, vous demandez:Ou mieux encore:
Ou, comme vous le demandez "IP ="
Adapter sans vergogne l'idée de @Roman
Sortie normale:
De
man ip
:Voir un exemple de pourquoi
ifconfig
n'est pas conseillé: BBB: `bbb-conf --check` montrant les adresses IP comme` inet` - ifconfig woesPour comprendre pourquoi
ifconfig
est sur le point de sortir, voir Différence entre les commandes «ifconfig» et «ip»la source
awk
. Trop de cervelle pour moi, toujours en train de me réveiller. Évitezifconfig
, il n'a pas d'avenir, et la position des changements d'adresse IP, il y a au moins deux versions / implémentations différentes (?) Pour Linux que je connais.-brief
paramètre et sa sortie devient plus facile à analyser (2015-08-31: git.kernel.org/pub/scm/network/iproute2 /iproute2.git/commit/… )-o
qui semble effectivement utile pour les scriptsAwk
Solution:Exemple de sortie:
la source
la source
ip addr | awk ' !/127.0.0.1/ && /inet/ { gsub(/\/.*/, "", $2); print "IP="$2 } '