Habs. Im Moment siehts so aus:
Code:
#!/usr/bin/env bash
LISTSERVICES="networksetup -listnetworkserviceorder"
AIRPORTI="airport -I"
# Ermitteln ob WLAN aktiv
WLANACTIVE=1
($AIRPORTI|grep -q 'AirPort: Off') && WLANACTIVE=0
# Entsprechend 'schöne' Ausgaben erzeugen
if (( WLANACTIVE )); then
$AIRPORTI|{
while read line; do
case "$line" in
agrCtlRSSI:*)
QUALITY=${line##*: }
;;
lastTxRate:*)
SPEED=${line##*: }
;;
SSID:*)
SSID=${line##*: }
;;
channel:*)
CHANNEL=${line##*: }
;;
*)
;;
esac
done
if [ "$SSID" = "SSID:" ]; then
echo "WIFI: enabled (not connected)"
else
echo "WIFI: enabled"
echo "Network: $SSID"
echo "Speed: $SPEED Mbit/s"
echo "Quality: $QUALITY
dB"
fi
}
else
echo "WIFI: disabled"
fi
# make some lines
echo
echo
# Geräte ermitteln
# ... unnötige Teile herausschneiden.
$LISTSERVICES|sed '/Device:/!d; s/^.*:\s\s*\(.*\),\s\s*Device:\s\s*\(.*\).$/\1:\2/;'|while read device; do
# Wichtige Teile extrahieren (Format pro Zeile ist <name>:<interface>)
NAME=${device#*: }
NAME=${NAME%%,*)}
IFACE=${device##*: }
IFACE=${IFACE%%)}
case "$IFACE" in
en*)
echo "Interface: $NAME : $IFACE"
ifconfig $IFACE
# TODO: hier muß erweitert werden
;;
*)
;;
esac
done
Die ifconfig $IFACE ausgabe tut auch schon - jetzt muss ich hier nur noch die Ausgabe auseinanderpfriemeln und dann je nach Status (existiert nicht, active, inactive) so wie beim WLAN jetzt die Ausgabe zusammenbauen.