Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#23

AW: Gute Tutorials / Beispiele zu sed und awk gesucht

  Alt 4. Jan 2011, 11:58
Dann schau ich mal dass ich das nachher in der Mittagspause zusammenpfriemel. Diese Regex da versteh ich schon längen besser als die davor *g*

Hervorragend, so tut's jetzt
Code:
#!/usr/bin/env bash
echo "Network information:"
echo "===================="
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
        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

# Geräte ermitteln
#             ... unnötige Teile herausschneiden.

while read device; do
   #empty line / placeholder
   echo
   IFACE=${device%%:*}
   NAME=${device##*:}

   case "$IFACE" in
        en*)
             echo "Interface: $NAME"
         echo "========================"
         ifconfig $IFACE
             # TODO: hier muß erweitert werden
          ;;
      Bluetooth-Modem*)
         #echo $NAME
      ;;
        *)
          ;;
     esac
done < <($LISTSERVICES|sed -E -e '/Device:/!d; s/^\(Hardware Port: *(.*), *Device: *(.*)\)$/\2:\1/'|sort)
Die Ausgabe bisher:
Code:
smartair:Scripte Sebastian$ ./networkinfo.sh
Network information:
====================
WIFI:       enabled
Network:    SH_SECURED_1OG
Speed:      54 Mbit/s
Quality:    -61 dB



Interface: AirPort
========================
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
   ether 10:93:e9:00:ca:1a
   inet6 fe80::1293:e9ff:fe00:ca1a%en0 prefixlen 64 scopeid 0x4 
   inet 192.168.2.120 netmask 0xffffff00 broadcast 192.168.2.255
   media: autoselect
   status: active

Interface: Bluetooth PAN
========================
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
   ether 10:93:e9:00:ca:1b
   media: autoselect
   status: inactive

Interface: iPhone-USB
========================
ifconfig: interface en2 does not exist

Interface: USB-Ethernet
========================
ifconfig: interface en3 does not exist
smartair:Scripte Sebastian$
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 13:27 Uhr)
  Mit Zitat antworten Zitat