Also, erstmal schildere ich mein Vorhaben:
Ich baue mir grade ein Script, welches eine Textdatei nach folgenden Muster aufbaut:
25/01/2006 in -> 1138186061 out -> 1138186094 --> 0
erstes ist Datum, zweites Anfangszeit, drittes Endzeit und letzter Wert die Differenz.
Das klappt soweit auch alles. Allerdings happert es beim Ausrechnen der Differenz.
Hier mein Denkbeispiel:
$1=1138186061
$2=1138186094
gesamtinsekunden=$(($2 - $1))
bis hierhin geht auch alles...
nun aber die differenz in stunden umwandelnt klappt nicht:
gesamtinstunden=$(($gesamtinsekunden / 60 / 60))
und zwar aus dem einfachen Grund, das nur ganze Zahlen errechnet werden.
als ausgabe hätte ich letzendlich eine ausgabe wie 8,5 für 8 1/2 stunden... halt eine lesbare stundenanzeige...
hat da jemand eine idee zu?
TIMESTAMP Umrechnung
-
- Beiträge: 189
- Registriert: 11.08.2005 09:27:01
Schau Dir mal bc an, vielleicht geht sowas wie
Code: Alles auswählen
echo "scale=4; $gesamtinsekunden/3600" | bc
TIMESTAMP Umrechnung
Hallo Fuechsin,
ich unterstelle mal, das Du die bash benutzt (obwohl das in der ksh -glaube ich-
auch so ist). Die bash kann nur positive Ganzzahlen verarbeiten. Wenn der Unterschied
groß genug ist, wird schon ein Wert herauskommen (wobei das dann immer noch eine Ganzzahl ist).
Gruß
Matthias
ich unterstelle mal, das Du die bash benutzt (obwohl das in der ksh -glaube ich-
auch so ist). Die bash kann nur positive Ganzzahlen verarbeiten. Wenn der Unterschied
groß genug ist, wird schon ein Wert herauskommen (wobei das dann immer noch eine Ganzzahl ist).
Gruß
Matthias
TIMESTAMP Umrechnung
Hallo Fuechsin,
ich habe noch mal einen kleinen Hinweis auf Deinen Einstiegsbeitrag (bezogen auf die bash) den ich letztens vergessen habe. Die Klammersetzung in der letzten Formel, bei der dividiert wird, ist so nicht richtig.
wäre korrekt. Da gibt es aber auch noch eine Variante mit eckigen Klammern.
Gruß
Matthias
ich habe noch mal einen kleinen Hinweis auf Deinen Einstiegsbeitrag (bezogen auf die bash) den ich letztens vergessen habe. Die Klammersetzung in der letzten Formel, bei der dividiert wird, ist so nicht richtig.
Code: Alles auswählen
d=$((((c / 2)) / 2))
Gruß
Matthias