Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Milisekunda neobsahuje desetinnou čárku [bash]  (Přečteno 1002 krát)

cvp

  • Aktivní člen
  • *
  • Příspěvků: 211
Milisekunda neobsahuje desetinnou čárku [bash]
« kdy: 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:
Kód: [Vybrat]
start=`date +%s`....
....
....
Na konec scriptu pak:
Kód: [Vybrat]
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.

Cuore

  • Závislák
  • ***
  • Příspěvků: 2534
Re:Milisekunda neobsahuje desetinnou čárku [bash]
« Odpověď #1 kdy: 10 Července 2016, 15:48:17 »
A tohle ti nestačí
Kód: [Vybrat]
date +%H:%M:%Ss tím %s to je dost naprd

Jakub Vaněk

  • Stálý člen
  • **
  • Příspěvků: 752
    • Web programátora a studenta Jakuba Vaňka
Re:Milisekunda neobsahuje desetinnou čárku [bash]
« Odpověď #2 kdy: 10 Července 2016, 17:56:11 »
Já to asi chápu. Bohužel, desetinnou čárku do date nedostaneš, protože date pracuje se na úrovni sekund. proč? [time(time_t*)][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:
Kód: [Vybrat]
bc <<< "scale=$desetinnych_mist; $sekundy/3600"
« Poslední změna: 10 Července 2016, 18:06:21 od Jakub Vaněk »
Notebook: Lenovo Thinkpad X200, Xubuntu 16.04

Jakub Vaněk

  • Stálý člen
  • **
  • Příspěvků: 752
    • Web programátora a studenta Jakuba Vaňka
Re:Milisekunda neobsahuje desetinnou čárku [bash]
« Odpověď #3 kdy: 10 Července 2016, 18:05:51 »
Pro milisekundy buď:
stackoverflow.com/a/18704121 + úprava
Kód: [Vybrat]
date +"%s.%3N"výstup:
Kód: [Vybrat]
1468166706.993nebo:
stackoverflow.com/a/16548827
Kód: [Vybrat]
echo $(($(date +%s%N)/1000000))výstup:
Kód: [Vybrat]
1468166683668
Notebook: Lenovo Thinkpad X200, Xubuntu 16.04

 

Provoz zaštiťuje spolek OpenAlt.