Millisekunden in Shell-Skripten auf Mac OS X

Unter Linux ist es ja so einfach: date +%s.%N liefert die Epoch-Zeit auf die Nanosekunde genau. Der date-Befehl von Mac OS X kennt die Formatierung %N aber nicht. Wie kann ich ohne Zusatzprogramme eine bessere Zeitauflösung in meinen Shell-Skripten erreichen?

vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 1 Min.
Von
  • Christiane RĂĽtten

Unter Linux ist es ja so einfach: date +%s.%N liefert die Epoch-Zeit auf die Nanosekunde genau. Der date-Befehl von Mac OS X kennt die Formatierung %N aber nicht. Wie kann ich ohne Zusatzprogramme eine bessere Zeitauflösung in meinen Shell-Skripten erreichen?

Unter OS X muss man schon tief in die Trickkiste greifen. Beispielsweise die Fehlermeldung des Befehls defaults liefert Zeitangaben mit Millisekundengenauigkeit. Passende Schritte zum Ăśbersetzen der Ausgabe in Epoch sind:

tmp=$(defaults read . 2>&1)
date=${tmp:0:19}
ms=${tmp:20:3}
epoch=\
$(date -jf "%Y-%m-%d %H:%M:%S" "$date" +%s)
echo $epoch.$ms

Allerdings liegt die Laufzeit dieser Befehle bei rund 20 ms – allein 14 ms für defaults –, was die zeitliche Präzision erheblich verschlechtert. (cr)