Optimale Definition von Potenzen im bc (Umrechnung Bytes)

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Ritter, 01.02.2007.

  1. Ritter

    Ritter Grünschnabel

    Dabei seit:
    01.02.2007
    Beiträge:
    6
    Zustimmungen:
    0
    Das folgende Script zieht per SNMP accounting Daten vom Router und stellt diese leicht aufbereitet dar. Nun ist der GNU bc mehr als nur ein Rechner, genaugenommen eine Programmiersprache für arithmetische Berechnungen und sollte daher auch mit Potenzen umgehen können. Google'n hat nicht geholfen; ich finde kein Beispiel wie das praktisch aussehen könnte und wollte daher Fragen, ob da jemand eine Idee hat.


    #! /bin/bash
    case $1 in
    d|D ) IFACE=24 ;;
    v|V ) IFACE=28 ;;
    esac

    printf "\n"
    IFNAME=`snmpget -v2c -c public 192.168.0.1 IF-MIB::ifDescr.${IFACE} | awk '{printf $4}'`
    TRAFFIC=`snmpget -v2c -c public 192.168.0.1 IF-MIB::ifInOctets.${IFACE} | awk '{printf $4}'`
    printf "Interface:\t $IFNAME\n"
    printf "Bytes:\t\t $TRAFFIC"
    Traffic_KByte=$(echo -e "scale=2 ;\n$TRAFFIC/1024 \nquit" | bc -l)
    printf "\nKBytes:\t\t $Traffic_KByte"
    Traffic_MByte=$(echo -e "scale=2 ;\n$TRAFFIC/1024/1024 \nquit" | bc -l)
    printf "\nMBytes:\t\t $Traffic_MByte"
    Traffic_GByte=$(echo -e "scale=2 ;\n$TRAFFIC/1024/1024/1024 \nquit" | bc -l)
    printf "\nGBytes:\t\t $Traffic_GByte"
    printf "\n\n"


    Wenn ich nicht ganz falsch liege, sollte statt '1024/1024' auch 2^1024 beziehungsweise statt '1024/1024/1024' auch 3^1024 funktionieren? Wenn ich das aber probiere, erhalte ich als Rückgabe lediglich 0. Oder habe ich einen Denkfehler hinsichtlich Potenzen?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. thobit

    thobit Routinier

    Dabei seit:
    11.04.2006
    Beiträge:
    265
    Zustimmungen:
    0
    Ich habe zwar keine Ahnung von Scriptsprachen, aber bist du sicher, dass es 1024/1024 heißen muss und nicht 1024*1024 wenn du mit Potenzen arbeiten willst? 1024*1024 ist auch 1024^2 und nicht 2^1024. Daran kann es auch liegen, dass du 0 erhälst, da 1024^2 << 2^1024.
    Würde ich so sagen mit meinen Kentnissen aus C/C++ und Mathe.
     
  4. #3 neutrino1, 01.02.2007
    neutrino1

    neutrino1 Mitglied

    Dabei seit:
    03.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Hi!

    Da war doch was mit der Reihenfolge von Punkt- und Strichrechnungen usw :)
    Code:
    > echo "123456789/1024/1024"|bc
    117
    > echo "123456789/(1024/1024)"|bc
    123456789
    > echo "123456789/(1024*1024)"|bc
    117
    > echo "123456789/(1024^2)"|bc   
    117
     
  5. #4 Wolfgang, 01.02.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    thobit hat Recht.
    Das kannst du leicht überprüfen, indem du die beiden Ausgaben von
    1024 * 1024 und 1024 ^ 2 vergleichst.
    Und 2 ^ 1024 entspricht 2 in der 1024 Potenz!

    Wenn du aber von Byte ausgehend auf kb mb und gb umrechnen willst, musst du natürlich durch 1000 hoch n teilen, was das gleiche ist wie n * durch 1000.
    Das ist reine Mathematik. ;)
    Die 1024 für 1000 kannst du auch verwenden, jedoch ist das streitbar.
    Das ist aber eine andere Baustelle.


    Gruß Wolfgang
     
  6. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Noch ergänzend: 1024*1024 = 2^20 und nicht 2^1024.
     
  7. Ritter

    Ritter Grünschnabel

    Dabei seit:
    01.02.2007
    Beiträge:
    6
    Zustimmungen:
    0
    Genau das war es. Perfekt! Vielen Dank!!!
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Optimale Definition von Potenzen im bc (Umrechnung Bytes)

Die Seite wird geladen...

Optimale Definition von Potenzen im bc (Umrechnung Bytes) - Ähnliche Themen

  1. Artikel: Optimale Oberfläche für Gnome und XFCE

    Artikel: Optimale Oberfläche für Gnome und XFCE: Die Tipps zum Linux-Desktop nehmen sich diesmal speziell die Oberflächen Gnome und XFCE vor, und eine Anleitung für Debian zeigt, wie sich dort...
  2. Optimales FS für USB-Stick unter Linux

    Optimales FS für USB-Stick unter Linux: Hallo Was sollte man normalerweise für ein FS auf einem USB-Stick benutzen, welcher nur unter Linux seinen Dienst tut, dort unter Gnome. ?...
  3. optimales System für numerische Simulationen

    optimales System für numerische Simulationen: Hallo, ich plane in Kürze numerische Simulationen in größerem Umfang durchzuführen (d.h. wiederholt, maximal einige Tage Berechnung) und frage...
  4. optimale Distribution fuer Toshiba Satellite4100XCDT

    optimale Distribution fuer Toshiba Satellite4100XCDT: das gute alte stueck hat eienen mobile Petium2 mit 399Mhz und 196mb Ram. nun suche ich einen Distri zum arbeiten(programmierung von...
  5. Optimales Dateisystem für Archivierung

    Optimales Dateisystem für Archivierung: Hallo, ich möchte zur Speicherung meiner mp3 und Videosammlung ein optimales Dateisystem finden. Grundsätzlich gehe ich davon aus dass ext3 am...