2016-10-04 5 views
0

Mein Gerät verfügt über mehrere Ethernet-Geräte wie eth0, eth1 usw. Eine dieser IP-Adressen hat eine IP-Adresse im Bereich 192.168.x.x. Wie kann ich den Gerätenamen mit Shell-Skript abrufen? (Vorzugsweise unter Verwendung ip Befehle statt ifconfig)Shell-Skript: Eth-Namen von Subnet-Maske abrufen

Wie

eth0 192.168.2.3 oder eth3 192.168.5.6

Antwort

0

Sie können dies versuchen;

ip -o -4 a | awk '$2 ~ "eth" { gsub(/\/.*/, "", $4); print $2" "$4}' 

an alle Schnittstellen;

ip -o -4 a | awk ' { gsub(/\/.*/, "", $4); print $2" "$4}' 

zB:

[email protected]:/tmp/$ ip -o -4 a | awk ' { gsub(/\/.*/, "", $4); print $2" "$4}' 
lo 127.0.0.1 
eth0 x.x.x.x 
docker0 x.x.x.x 

[email protected]:/tmp/$ ip -o -4 a | awk '$2 ~ "eth" { gsub(/\/.*/, "", $4); print $2" "$4}' 
eth0 x.x.x.x 

Man IP gesagt:

-o, -oneline Ausgang jeder Datensatz in einer einzelnen Zeile, ersetzt Zeilenvorschübe mit dem Zeichen '\'. Dies ist praktisch, wenn Sie Datensätze mit wc (1) zählen oder den Ausgang grep (1) wollen.

-4 a: Nur zeigen TCP/IP IPv4