Mit der Bash Rechnen

  • Hallo,


    ich habe mir ein kleines Script geschrieben, welches Filme für mein Handy convertiert ( Siemens SX1 und SmartMovie).


    Es funktioniert alles soweit ohne Probleme, ich will nur noch ein Feature einbauen, welches die Bildgröße automatisch berechnet.


    Um die Bildgröße des Films heraus zubekommen, benutze ich den mplayer, und funktioniert auch soweit.


    Mein Frage wäre jetzt:


    Wer kann mir diese Formel für mein Bash Script übersetzen.



    Gegeben: Bildhöhe, Bildbreite, neueBildbreite


    Gesucht: neueBildhöhe



    Bildhöhe / Bildbreite = Wert


    Wert * 208(neue Bildbreite) = Bildhöhe



    Gruß


    Litwas


    P.S. Ich hoffe ich konnte es einigermasen euch verständlich machen.

    Hardware: Pentium3 1GHZ; 512 MB Ram; Hauppauge Nexus-S 2.1 + original Fernbedienung, Terratec Cinergy1200 DVB-C


    System: debian sarge; Kernel 2.6.16;


    VDR: VDR 1.4.1


    PLUGINS: remote 0.3.5


  • Sprich: kannst Du in der Manpage in aller Deutlichkeit nachlesen )


    Ansonste hilft das Bash-HOWTO weiter:


    http://www.tldp.org/HOWTO/Bash…ntro-HOWTO-10.html#ss10.2

  • Danke Thomas,


    dies hatte ich mir schon angeschaut (wenn ich mich nicht Irre).


    Hat mir leider nichts gebracht, da ich beim umrechnen immer in der Variable Wert, eine Zahl kleiner als 1 bekomme.


    Und wenn ich das anwende was du mir empfohlen hast, bekomme ich entweder eine 1 oder 0 als ergebnis. ( ist jetzt paar Monate her als ich das letzte mal an dem Script saß)


    Hat jemand eine ander Idee? Von mir aus auch Perl-Script, welches ich in meinem Sc ript aufrufen kann.


    Gruß


    Litwas

    Hardware: Pentium3 1GHZ; 512 MB Ram; Hauppauge Nexus-S 2.1 + original Fernbedienung, Terratec Cinergy1200 DVB-C


    System: debian sarge; Kernel 2.6.16;


    VDR: VDR 1.4.1


    PLUGINS: remote 0.3.5

  • Zurück genommen :rolleyes:


    Ich sehe gerade in dem Link von Thomas die Zeile

    Code
    echo 3/4|bc -l


    Danke nochmal


    Litwas

    Hardware: Pentium3 1GHZ; 512 MB Ram; Hauppauge Nexus-S 2.1 + original Fernbedienung, Terratec Cinergy1200 DVB-C


    System: debian sarge; Kernel 2.6.16;


    VDR: VDR 1.4.1


    PLUGINS: remote 0.3.5

  • Hi,
    bei der Shellprogrammierung musst du aufpassen. Alles was nicht anders zugewiesen wird, gilt als String. Am besten deklarierst und initialisiert du die Variablen am Anfang Deines Skripts.


    Beispielsweise so:
    declare -i bildhoehe
    declare -i ergebnis

    ergebnis=bildhoehe*xxx+yyy


    Declare funktioniert nur in der Bash. Ansonsten müsste fürs rechnen auch expr funktionieren. Declare ist bei weitem übersichtlicher, vorallem wenn eine umfangreiche Formel zum Einsatz kommt.


    Grüßle
    Mike

  • Code
    echo 3/4|bc -l


    Obwohl es bestens funktioniert, hat das rein gar nichts mit Shell-Skripting zu tun.


    Unter bash müsste eigentlich ein folgendes funktionieren:


    Code
    ergebnis=$((Zaehler/Nenner))


    Der Pferdefuß liegt nur darin, daß/ss es sich hier um interger-Division handelt.


    marvel


  • ich meinte Bildhoehe und Bidbreite sind Variablen und keine Werte.
    ich wollte hervorheben das
    let $wert= $bildhoehe / $bildbreite
    falsch ist.
    obifrz

  • meines Wissens kommt man um die Verwendung von
    bc
    nicht herum, wenn man mit Dezimalwerten rechnen will. Für reine Integerwerte braucht man bc nicht.

    yaVDR: Mainboard: AsRock H77Pro 7 M, Intel Celeron Dual-Core G530, Kingston ValueRAM DIMM 4GB PC3-10667U, Digital Devices cineS2 V6, Graka: ASUS GT610-SL-1GD3L; Netzteil: Cougar A300 300W ATX 2.3; IR: ASRock Smart Remote
    Ausgabe: softhddevice

  • Ich Dank euch alllen für eure Hilfe!!!


    Ich werde es mal ausprobieren (kann etwas dauern) und dann berichten.


    Gruß
    Litwas

    Hardware: Pentium3 1GHZ; 512 MB Ram; Hauppauge Nexus-S 2.1 + original Fernbedienung, Terratec Cinergy1200 DVB-C


    System: debian sarge; Kernel 2.6.16;


    VDR: VDR 1.4.1


    PLUGINS: remote 0.3.5

  • Vielen Dank an euch alle!!


    Hier jetzt mein Code für die Berechnungsfunction:


    Gruß


    Litwas

    Hardware: Pentium3 1GHZ; 512 MB Ram; Hauppauge Nexus-S 2.1 + original Fernbedienung, Terratec Cinergy1200 DVB-C


    System: debian sarge; Kernel 2.6.16;


    VDR: VDR 1.4.1


    PLUGINS: remote 0.3.5

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!