Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: cvp 10 Července 2016, 14:09:53
-
Používám BASH script na fotografování a rád bych vypočítaval čas, jak dlouho scriptu trvá pořídit za pomocí foťáku fotografii, kterou následně zpracovává.
Na začátek scriptu jsem dal:
start=`date +%s`....
....
....
Na konec scriptu pak:
end=`date +%s`
runtime=$((end-start))
Problém však je ten, že tam chybí desetinná čárka :o
Výsledek echo runtime: 8638 nebo 11643
Poradíte, jak desetinnou čárku "tečku" doplnit? Rád bych si chtěl udělat grafy a z těchto monstrum čísel to nepůjde.
-
A tohle ti nestačí
date +%H:%M:%Ss tím %s to je dost naprd
-
Já to asi chápu.
Bohužel, desetinnou čárku do date nedostaneš, protože date pracuje se na úrovni sekund. proč? [time(time_t*)] (http://pubs.opengroup.org/onlinepubs/009695399/basedefs/time.h.html)[time_t] (http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/types.h.html#time_t)
Ten údaj, který dostaneš příkazem date +%s, je počet sekund od 00:00:00 1. ledna 1970, takzvaný Unix time. Když tyto dva údaje od sebe odečteš, dostaneš počet sekund.
Pokud to např. chceš převést na hodiny, použij bc: stackoverflow.com/a/12723330 (http://stackoverflow.com/a/12723330):
bc <<< "scale=$desetinnych_mist; $sekundy/3600"
-
Pro milisekundy buď:
stackoverflow.com/a/18704121 (http://stackoverflow.com/a/18704121) + úprava
date +"%s.%3N"výstup:
1468166706.993nebo:
stackoverflow.com/a/16548827 (http://stackoverflow.com/a/16548827)
echo $(($(date +%s%N)/1000000))výstup:
1468166683668