2016-07-18 13 views
0

Ich versuche, Zeitdifferenz vor dem Start und nach Abschluss des Skripts in Millisekunden zu berechnen. gibt es eine Möglichkeit einfacher ohne bc mitZeit in Millisekunden ohne bc

i mit Datum +% s000

+0

wenn Sie verwenden können, 'ksh' (93+) oder' zsh', sie unterstützen beide Gleitkomma calcs innerhalb ihres 'math'-Operators, dh' var = $ ((9.7 * 10.1)); echo $ var' gibt '97.97' zurück. . Vielleicht möchten Sie Ihr Q erweitern, um anzuzeigen, was Ihr Einwand gegen 'bc' ist. Viel Glück. – shellter

+1

Sie haben die Möglichkeit, die Teile Ihres Skripts, die Sie möchten, in den Systemzeitbefehl 'time' einzufügen und dann entweder die * real *, * user * oder * sys * mal oder GNU/time und Angabe des '--formats' für die Zeit von Interesse (zB * real *'% e', * Benutzer * '% U', oder sys'% S') –

Antwort

0

bc für einen Shell-Skript zu empfehlen wäre versucht haben. Wenn Sie constraint haben und Python installiert ist, könnte dies in Ihrem Skript funktionieren.

s="start time in epoch sec" 
.... your code 
e="end time in epoch sec" 
python -c 'import sys; dt=(float(sys.argv[1])-float(sys.argv[2]))/1000.; print dt' $s $e 
0

, wenn Sie sicher sind, über das Skript in 1 Sekunde läuft, verwenden Sie diese:

TIME1=$(date +"%-3N") 
sleep 0.5 
TIME2=$(date +"%-3N") 
SYSDELAY=$(($TIME2 - $TIME1)) 
if [ "${SYSDELAY:0:1}" = "-" ];then 
    SYSDELAY=$((1000 + $SYSDELAY)) 
fi 
Verwandte Themen