.titleBar { margin-bottom: 5px!important; }

[Erledigt] bc für Freetz

Dieses Thema im Forum "Freetz" wurde erstellt von VirtuellOriginell, 23 Juli 2018.

  1. VirtuellOriginell

    VirtuellOriginell Neuer User

    Registriert seit:
    11 Sep. 2017
    Beiträge:
    17
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Für ein Script muss die Box rechnen können, dafür brauche ich das Programm bc gibt es das für Freetz, wenn ja in welchen Paket versteckt es sich?
     
  2. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    11,075
    Zustimmungen:
    526
    Punkte für Erfolge:
    113
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    Wie genau soll diese Berechnung denn sein und was wird da berechnet?

    Für normale Integer-Berechnungen gibt es die Shell (bis hin zu 64 Bit-Werten): http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_04

    Ansonsten gäbe es noch ein paar Hochsprachen (von Lua bis Python), in denen ggf. auch Gleitkommaberechnungen möglich sind - auf einer FRITZ!Box aber ohnehin nur als Emulation.

    Dann bleiben noch ein paar (bereits vorhandene) Multiprecision-Libraries, die man mit eigenem Code nutzen könnte.

    Aber von "bc" als Paket für Freetz habe ich noch nichts gelesen ... immerhin kennt die BusyBox aber den "desk calculator" (dc), wenn man den einbauen läßt und der könnte auch für einige Berechnungen herhalten.

    Außerdem gäbe es ggf. auch noch "awk" in der BusyBox (keine Ahnung, wie weit da Gleitkomma-Arithmetik umgesetzt ist) ... aber nicht in der AVM-Version und auch bei Freetz ist es (m.W., unsicher, einfach selbst nachsehen) nicht in der Standard-Konfiguration enthalten.

    Also entweder
    • man stellt die Berechnung (auf Integer-Basis oder sogar mit "big numbers") entsprechend um (passenderweise kann man in #1 ja nicht mal eine Vorstellung gewinnen, welche Berechnungen denn nun unbedingt nach "bc" verlangen),
    • nutzt eine andere Sprache, die bereits unterstützt ist oder
    • ein anderes Applet oder Paket, was verfügbar wäre ("dc" oder "awk" hatte ich als Beispiel schon) oder
    • man bringt selbst irgendwie "bc" (ist ja ein GNU-Programm und sogar in den POSIX-Standard eingegangen) zum Laufen auf einer FRITZ!Box und erwartet dann aber auch keine Höchstleistungen jenseits von Integer-Arithmetik.
     
  3. VirtuellOriginell

    VirtuellOriginell Neuer User

    Registriert seit:
    11 Sep. 2017
    Beiträge:
    17
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Danke für die Info.

    mmmhh im Script soll z.B. 2,5Std in Sekunden umgerechnet werden.

    Da eine normale Bash in der Lage ist ohne Hilfsmittel mit Ganzzahlen zu rechnen. Werde ich mal probieren ob dies auf Freetz-Bash auch möglich ist.
     
  4. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    11,075
    Zustimmungen:
    526
    Punkte für Erfolge:
    113
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    Nur deshalb würde ich die "bash" jetzt aber auch nicht einbauen lassen, denn das kann die "ash" in der BusyBox genauso und die ist automatisch mit dabei.

    Bei Brüchen muß man halt selbst mit Zehnerpotenzen hantieren und passend erweitern bzw. kürzen (die Position eines Dezimaltrenners findet man notfalls auch mit "expr" heraus und auch das "Zerlegen" in Vor- und Nachkommastellen ist reines String-Handling), wenn es tatsächlich 2.5 Stunden anstelle von 150 Minuten sein sollen.
     
  5. koyaanisqatsi

    koyaanisqatsi IPPF-Urgestein

    Registriert seit:
    24 Jan. 2013
    Beiträge:
    10,577
    Zustimmungen:
    115
    Punkte für Erfolge:
    63
    Für Ganzzahlenberechnungen hab ich asmd als Inkludierung parat...
    asmd
    Code:
    # add, sub, mul and div ( asmd )
    
    add ()
    {
        echo $((${1}+${2}))
    }
    
    sub ()
    {
        echo $((${1}-${2}))
    }
    
    mul ()
    {
        echo $((${1}*${2}))
    }
    
    div ()
    {
        echo $((${1}/${2}))
    }
    Beispiel:
    . asmd # Lädt die Funktionen in Shell oder Skript
    add 7200 $(mul 300 6) # 2 Stunden + ( 6 * 5 Minuten )
    Ergebnis: 9000 # 2,5 Stunden
     
  6. VirtuellOriginell

    VirtuellOriginell Neuer User

    Registriert seit:
    11 Sep. 2017
    Beiträge:
    17
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    So das Script hab ich Erfolgreich umgeschrieben
     
  7. PeterPawn

    PeterPawn IPPF-Urgestein

    Registriert seit:
    10 Mai 2006
    Beiträge:
    11,075
    Zustimmungen:
    526
    Punkte für Erfolge:
    113
    Beruf:
    IT-Freelancer
    Ort:
    Berlin
    Vielleicht änderst Du dann ja auch noch den Thread-Titel (das "erledigt" ist ja dankenswerterweise schon da) ... der derzeitige weckt ziemlich falsche Assoziationen und verschwendet vermutlich nur die Zeit von anderen beim Suchen.

    Irgendwas mit "Integer-Arithmetik unter Freetz" oder das derzeitige als Frage (damit es nicht so klingt, als gäbe es hier das Paket dafür zu laden), wäre vermutlich weniger irreführend.