Antworten:
Versuchen Sie es einfach time
statt timethis
.
Beachten Sie jedoch, dass es häufig eine Shell-Version von time und eine Binärversion gibt, die Ergebnisse in verschiedenen Formaten liefern:
$ time wget -q -O /dev/null https://unix.stackexchange.com/
real 0m0.178s
user 0m0.003s
sys 0m0.005s
vs
$ \time wget -q -O /dev/null https://unix.stackexchange.com/
0.00user 0.00system 0:00.17elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+613minor)pagefaults 0swaps
Im Gegensatz zu Ihrem "timethis" -Programm erhalten Sie drei Werte zurück. Das ist in Was ist "Systemzeit", wenn "Zeit" in der Befehlszeile verwendet wird , aber kurz: Real bedeutet "Wanduhrzeit", während User und Sys die CPU-Uhrzeit anzeigen , die zwischen regulärem Code und Systemaufrufen aufgeteilt ist.
Indem Sie die ausführbare Datei time
anstelle der integrierten Shell verwenden, können Sie das Ausgabeformat und die Werte angeben. ZB die tatsächlich verstrichene Zeit zusammen mit dem Befehlsnamen und den Parametern ermitteln
/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds
Beachten Sie, dass Sie den Pfad für angeben müssentime
, andernfalls verwenden Sie standardmäßig die integrierte Shell.
/usr/bin
in ihrem Pfad?
time
Dienstprogramm der Shell verwendet wird.
command time
oder verwenden \time
, um das Dienstprogramm anstelle des eingebauten Dienstprogramms auszuführen.
@galois: Die verschiedenen Shells haben eine Handvoll "eingebauter" Befehle, die Vorrang vor allem haben, was sich auf dem Pfad befindet. Normalerweise ist dies vorteilhaft; Die eingebauten Funktionen werden in der Regel schneller ausgeführt (da keine externe Datei aufgerufen wird) und liefern normalerweise das gewünschte Ergebnis (dh im Falle eines Zeitbefehls ist es Ihnen normalerweise egal, welche Version Sie verwenden, es sei denn, Sie möchten die Option "" verwenden. --format "flag).
"Zeit" ohne Sonderzeichen (wie /), damit es wie ein Pfad aussieht, führt das eingebaute Programm aus, unabhängig davon, wie Ihr PFAD aussieht.
Damit die Shell den Befehl external time verwendet, müssen Sie den Pfad angeben