Anzeige:
Ergebnis 1 bis 10 von 10

Thema: Rechnen im Shellscript

  1. #1
    Registrierter Benutzer Avatar von Norbert
    Registriert seit
    03.09.2005
    Ort
    Westerwald
    Beiträge
    6

    Rechnen im Shellscript

    Hallo,

    vorhanden sind vier Variable (a1, a2, a3, a4) die mit Zahlen von 0-255 belegt sind.
    Die einzelnen Werte muessen mit einer Zahl multipliziert und dann summiert werden.
    Die Summe ist ein 1900-er Timestamp, von dem 70 Jahre (-2208988800) zu subtrahieren sind.
    Nun soll das Ergebnis im deutschen Datums/Zeit-Format ausgegeben werden.

    Fummele hier schon eine Weile, aber nichts will funktionieren. Ein deutsches Tutorial
    fuer "Rechnen im Shellscript" findet sich nicht, so dass ich nur um Hilfe bitten kann.
    Gruss und Dank
    Norbert :cool:

  2. #2
    Registrierter Benutzer
    Registriert seit
    29.12.2003
    Beiträge
    17
    man bc oder
    man dc
    Code:
    a1=3
    a2=5
    a3=5
    a4=7
    BC="zahl=$a1 * 1000 + $a2 * 100 + $a3 * 10 + $a4 * 1
    zahl"
    TIMESTAMP=`echo "$BC" | bc`
    echo $TIMESTAMP
    Wie Du jetzt aus der Zahl ein Datum machst weist hoffentlich selber, ich weis es naemlich nicht aus dem stehgreif
    http://wiki.pilgerer.org/ - Das WikiWeb fuer alle Unix Fans und die, die es werden wollen.

  3. #3
    Registrierter Benutzer Avatar von Norbert
    Registriert seit
    03.09.2005
    Ort
    Westerwald
    Beiträge
    6
    Hi DaTa,

    Norbert@NORBERT ~
    $ man bc
    No manual entry for bc
    Norbert@NORBERT ~
    $ man dc
    No manual entry for dc
    Aber wenn mich nicht alles taeuscht, braucht man fuer die 4 Grundrechenarten keine Hilfsprogramme. Leider finde ich nirgends eine Beschreibung der Syntax.
    Gruss und Dank
    Norbert :cool:

  4. #4
    Registrierter Benutzer Avatar von Norbert
    Registriert seit
    03.09.2005
    Ort
    Westerwald
    Beiträge
    6
    Hi,

    soweit funktioniert es hier erstmal
    Code:
    echo "a1=[$a1]"
    echo "a2=[$a2]"
    echo "a3=[$a3]"
    echo "a4=[$a4]"
    k1=$((256 * 256 * 256));
    k2=$((256 * 256));
    k3=$((256));
    k4=2208988800;
    zahl=$((a1 * k1 + a2 * k2 + a3 * k3 + a4 - k4));
    echo "zahl = "$zahl
    zeit=$(date +%s)
    echo "zeit = "$zeit;
    --------------------------------- Ausgabe
    a1=[198]
    a2=[196]
    a3=[187]
    a4=[137]
    zahl = 1125793033
    zeit = 1125793036
    Woran man sieht, dass mein PC drei(3) Sekunden vorgeht ...

    Nun muss ich nur noch das Datum finden ...
    Gruss und Dank
    Norbert :cool:

  5. #5
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von Norbert
    Fummele hier schon eine Weile, aber nichts will funktionieren. Ein deutsches Tutorial
    fuer "Rechnen im Shellscript" findet sich nicht, so dass ich nur um Hilfe bitten kann.
    Du hast dir auch den schwierigsten Weg ausgesucht.
    Leichter gehts mit PHP oder Perl. Dort gibt es schon
    viele Funktionen für deinen Zweck.
    (AWK + strtotime könnte man auch nehmen.)
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  6. #6
    Registrierter Benutzer Avatar von Norbert
    Registriert seit
    03.09.2005
    Ort
    Westerwald
    Beiträge
    6
    Du hast dir auch den schwierigsten Weg ausgesucht.
    nee, so kannst man das nicht sagen.
    Wenn ich mir etwas aussuche, kommt immer PHP dabei raus ...
    ABER:
    Auf dem Zielsystem bin ich nicht "root", und PHP bzw. Perl jibbet nicht.
    Es fehlt derzeit ja auch nur noch die Ausgabe des Datums.
    Sowas kann ja nicht sooo kompliziert sein ... oder ...
    Gruss und Dank
    Norbert :cool:

  7. #7
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von Norbert
    nee, so kannst man das nicht sagen.
    Wenn ich mir etwas aussuche, kommt immer PHP dabei raus ...
    ABER:
    Auf dem Zielsystem bin ich nicht "root", und PHP bzw. Perl jibbet nicht.
    Es fehlt derzeit ja auch nur noch die Ausgabe des Datums.
    Sowas kann ja nicht sooo kompliziert sein ... oder ...
    Vielleicht hilft dir ....
    http://www.gnu.org/software/tar/manu..._7.html#SEC117
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  8. #8
    Registrierter Benutzer Avatar von Norbert
    Registriert seit
    03.09.2005
    Ort
    Westerwald
    Beiträge
    6
    Hi Romanday,

    es ist, wie meistens, alles viel einfacher:
    Code:
    ...
    echo "zahl = "$zahl" = "$(date -d '1970-01-01 '$zahl' sec' +%d.%m.%y-%H:%M:%S);
    -------------------------------------------------- ergibt:
    Norbert@NORBERT ~
    $ ./a.sh
    Connection closed by foreign host.
    zahl = 1125832963 = 04.09.05-12:22:43
    Da stoert mich nur noch diese sinnlose Meldung.
    Sicher kann man die irgendwie umleiten, oder nicht ...
    Gruss und Dank
    Norbert :cool:

  9. #9
    Registrierter Benutzer Avatar von Romanday
    Registriert seit
    03.02.2004
    Beiträge
    829
    Zitat Zitat von Norbert
    Hi Romanday,
    Da stoert mich nur noch diese sinnlose Meldung.
    Sicher kann man die irgendwie umleiten, oder nicht ...

    Schau mal hier
    http://www.linuxfibel.de/eaumleitung.htm
    Abriss, bzw. die Sprengung des World Trade Centers
    WDR Dokumentation
    Doku + DT Untertitel
    Weitere Infos - Terrorstorm

  10. #10
    Registrierter Benutzer Avatar von Norbert
    Registriert seit
    03.09.2005
    Ort
    Westerwald
    Beiträge
    6

    Thumbs up

    Hi Romanday,

    da wurde ich gehelfen...
    Gruss und Dank
    Norbert :cool:

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •