Vielleicht müssen Sie nicht iterieren. In meinem Debian 9 (nur IPv4, ich bin mir nicht sicher, wie relevant es ist) kann ich Folgendes verwenden:
ip route get "$(host superuser.com | awk 'NR==1 ')" \ | grep -o "dev .* src [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"
wo host
(vom bind9-host
Paket) superuser.com
in seine IP-Adresse konvertieren soll . Um Fehler usw. zu behandeln, müssen Sie die Pipe dekonstruieren und ein Skript mit etwas Logik um seine Teile erstellen.
Beispielausgabe:
dev wlan0 src 192.168.1.2
Um trotzdem zu iterieren, schauen Sie in /sys/class/net
:
cd /sys/class/net ls for interface in *; do printf "Doing something with %s\n" "$interface" done
Diese Geräte sind zwar nicht unter /dev
, zumindest in keinem meiner Systeme.