Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

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

AW: Gute Tutorials / Beispiele zu sed und awk gesucht

  Alt 3. Jan 2011, 07:44
Also bei mir geht das so leider nicht.

Ich habe genau Dein Script und dabei nur den Input durch die echten calls ersetzt:

Code:
#!/usr/bin/env bash
# TODO: Austauschen gegen networksetup -listnetworkserviceorder
# LISTSERVICES="cat networksetup-listnetworkserviceorder.txt"
LISTSERVICES=`networksetup -listnetworkserviceorder`
# TODO: Austauschen gegen airport -I
AIRPORTI=`airport -I`
#AIRPORTI="cat airport-I.txt"
#AIRPORTI="cat airport-I-off.txt"

# Ermitteln ob WLAN aktiv
WLANACTIVE=1
($AIRPORTI|grep -q 'AirPort: Off') && WLANACTIVE=0

# Entsprechend 'schöne' Ausgaben erzeugen
if (( WLANACTIVE )); then
  echo "WLAN ist aktiv"
  $AIRPORTI|while read line; do
    case "$line" in
    agrCtlRSSI:*)
      # Ausgabe kannste hier anpassen
      echo "Empfangsqualität: ${line##*: } dB"
      ;;
    lastTxRate:*)
      # ... und hier
      echo "Aktuelle Geschwindigkeit: ${line##*: }"
      ;;
    *)
      ;;
    esac
  done
else
  echo "WLAN ist nicht aktiv"
fi

# Geräte ermitteln
#             ... unnötige Teile herausschneiden.
$LISTSERVICES|sed '/Device:/!d; s/^.*:\s\s*\(.*\),\s\s*Device:\s\s*\(.*\).$/\1:\2/i;'|while read device; do
  # Wichtige Teile extrahieren (Format pro Zeile ist <name>:<interface>)
  NAME=${device%%:*}
  IFACE=${device##*:}
  case "$IFACE" in
  en*)
    echo "$IFACE"
    # TODO: hier muß erweitert werden
    ;;
  *)
    ;;
  esac
done
Die Ausgabe ist dann folgende:

Code:
smartair:Scripte Sebastian$ ./networkinfo.sh
./networkinfo.sh: line 12: agrCtlRSSI:: command not found
WLAN ist aktiv
./networkinfo.sh: line 17: agrCtlRSSI:: command not found
./networkinfo.sh: line 37: An: command not found
sed: 1: "/Device:/!d; s/^.*:\s\s ...": bad flag in substitute command: 'i'
smartair:Scripte Sebastian$
Er scheint irgendwie mit dem case-Statement und den Ausdrücken dort Probleme zu haben. Sollte mir wohl doch das Bash-Buch mal zulegen
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat