Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#19

AW: Gute Tutorials / Beispiele zu sed und awk gesucht

  Alt 4. Jan 2011, 07:45
Boah ey. Subshells sind ekelhaft Hab noch ein bisschen getweaked damit's einfacher mit den Variablen wird.

Der sed - aufruf für die Geräteliste liefert im übrigen definitiv nicht "Name : deviceName" zurück sondern die Zeile 1:1 wie aus dem original-Aufruf. Da würde auch ein simples 'grep "Device:"' reichen:

Code:
#!/usr/bin/env bash
echo "Network information:"
echo "===================="
LISTSERVICES="networksetup -listnetworkserviceorder"
AIRPORTI="airport -I"

# WIFI
WLANACTIVE=1
($AIRPORTI|grep -q 'AirPort: Off') && WLANACTIVE=0

# Entsprechend 'schöne' Ausgaben erzeugen
if (( WLANACTIVE )); then
        while read line; do
          case "$line" in
             agrCtlRSSI:*)
            QUALITY=${line##*: }
               ;;
             lastTxRate:*)
            SPEED=${line##*: }
               ;;
             SSID:*)
            SSID=${line##*: }
            
               ;;
         channel:*)
            CHANNEL=${line##*: }
         ;;    
             *)
               ;;
          esac
    done < <($AIRPORTI)

   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

# Devices
while read device; do
   # Erst vorne, dann hinten abschneiden, jeweils für Name und Interfacename
   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 < <($LISTSERVICES|grep "Device:")
Gibts eigentlich ne Möglichkeit die Ausgabe nach enX zu sortieren und nicht einfach nur Zeilenweise durch den Input durchzuorgeln? (Ich weiss, jetzt wirds unverschämt ).
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org

Geändert von Phoenix ( 4. Jan 2011 um 07:46 Uhr) Grund: Ne Klammer vergessen.
  Mit Zitat antworten Zitat