Bitte schreiben Sie ein Ziel, das Sie erreichen wollen. Zum Messen der timeSkriptarbeitszeit verwenden Sie den Befehl (time ./script.sh), zum Ausdrucken der aktuellen Zeit den dateBefehl usw.
Sie können den in Linux integrierten timeBefehl verwenden. Von der Manpage:
time COMMAND [Argumente]
time bestimmt anhand der Zeichenfolge FORMAT, welche Informationen zu den vom COMMAND verwendeten Ressourcen angezeigt werden sollen. Wenn in der Befehlszeile kein Format angegeben ist, aber die Umgebungsvariable TIME festgelegt ist, wird der Wert als Format verwendet.
cleanup.shVerwenden Sie zum zeitlichen Festlegen des Skripts Folgendes:
Mir ist klar, dass dies eine ziemlich alte Frage ist, aber so mache ich es für alles, wenn ich wissen möchte / muss, wie lange etwas gedauert hat, um zu laufen.
Bash hat einen eingebauten Sekunden-Timer in Form einer internen Variablen namens SECONDS(siehe: hier für andere interne Variablen)
Stellen Sie SECONDS=0vor was auch immer Sie die Laufzeit von überprüfen. Es muss nach jeder Benutzereingabe erfolgen, um ein gutes Ergebnis zu erhalten. Wenn Sie also zur Eingabe von Informationen aufgefordert werden, setzen Sie diese nach die Eingabeaufforderung (en).
Dann setzen Sie dies am Ende dessen, was Sie überprüfen:
if(( $SECONDS >3600));then
let "hours=SECONDS/3600"
let "minutes=(SECONDS%3600)/60"
let "seconds=(SECONDS%3600)%60"
echo "Completed in $hours hour(s), $minutes minute(s) and $seconds second(s)"elif(( $SECONDS >60));then
let "minutes=(SECONDS%3600)/60"
let "seconds=(SECONDS%3600)%60"
echo "Completed in $minutes minute(s) and $seconds second(s)"else
echo "Completed in $SECONDS seconds"fi
Wenn Sie nur die Zeit in Sekunden wissen möchten, können Sie das oben Gesagte vereinfachen, um:
echo "Completed in $SECONDS seconds"
Als Beispiel:
read -rp "What's your name? ""name"
SECONDS=0
echo "Hello, $name"if(( $SECONDS >3600));then
let "hours=SECONDS/3600"
let "minutes=(SECONDS%3600)/60"
let "seconds=(SECONDS%3600)%60"
echo "Completed in $hours hour(s), $minutes minute(s) and $seconds second(s)"elif(( $SECONDS >60));then
let "minutes=(SECONDS%3600)/60"
let "seconds=(SECONDS%3600)%60"
echo "Completed in $minutes minute(s) and $seconds second(s)"else
echo "Completed in $SECONDS seconds"fi
time
Skriptarbeitszeit verwenden Sie den Befehl (time ./script.sh), zum Ausdrucken der aktuellen Zeit dendate
Befehl usw.time yourprogram.sh
cmd:, dass @Marius Cotofana erklärtAntworten:
Wenn Sie die Dauer in Sekunden wünschen, verwenden Sie oben
und am Ende
quelle
Sie können den in Linux integrierten
time
Befehl verwenden. Von der Manpage:cleanup.sh
Verwenden Sie zum zeitlichen Festlegen des Skripts Folgendes:quelle
time
Sie, was Sie verwenden. hackernoon.com/…Mir ist klar, dass dies eine ziemlich alte Frage ist, aber so mache ich es für alles, wenn ich wissen möchte / muss, wie lange etwas gedauert hat, um zu laufen.
Bash hat einen eingebauten Sekunden-Timer in Form einer internen Variablen namens
SECONDS
(siehe: hier für andere interne Variablen)Stellen Sie
SECONDS=0
vor was auch immer Sie die Laufzeit von überprüfen. Es muss nach jeder Benutzereingabe erfolgen, um ein gutes Ergebnis zu erhalten. Wenn Sie also zur Eingabe von Informationen aufgefordert werden, setzen Sie diese nach die Eingabeaufforderung (en).Dann setzen Sie dies am Ende dessen, was Sie überprüfen:
Wenn Sie nur die Zeit in Sekunden wissen möchten, können Sie das oben Gesagte vereinfachen, um:
Als Beispiel:
quelle
date +%T -d "1/1 + $SECONDS sec"
(auf weniger alsquelle
@anask mache eine clevere Lösung für diese Antwort, nur empfehle ich, die native zu
$SECONDS
verwenden, um eine neue zu erstellenDer Zweck der
printf
und der Division besteht darin, die verstrichenen Sekunden in die entsprechende Einheit Stunden, Minuten, Sekunden umzuwandeln.quelle