[Erledigt] bc für Freetz

V

VirtuellOriginell

Guest
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?
 
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.
 
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.
 
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.
 
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
 
So das Script hab ich Erfolgreich umgeschrieben
 
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.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,868
Beiträge
2,219,771
Mitglieder
371,585
Neuestes Mitglied
PauSchmitz
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.