Ich verwende normalerweise den Linux befehl Time um die Dauer für einen Prozess unter Linux nachzuvollziehen.
time make -j4
real 0m2,587s
user 0m0,001s
sys 0m0,027s
Die Bash führt aber auch die wirklich praktische Variable SECONDS die die vergangenen Sekunden seit dem Start der Shell enthält. SECONDS führt die zählung auch fort wenn die Variable verändert wird. Die Variable enthält nach einer Änderung die zugewiesene Zahl zusätzlich zu der Anzahl Sekunden die nach der Änderung vergangen sind.
Wieso also nich eine Null Zuweisen um zu erfahren wie lange ein Prozess braucht.:
SECONDS=0; make; echo $SECONDS
viel Schöner geht es jedoch wenn ich mir in Anschluss noch ausrechne wie viele Minuten und Stunden es wahren.:
SECONDS=0
# Hier kommt die Ausführung des Befehls
DAUER=$SECONDS
echo "$(($DAUER / 3600)) Stunden, $((($DAUER / 60) % 60)) Minuten und $(($duration % 60)) Sekunden vergangen."
In einer Einzigen Zeile, zum Compillieren eines Programms bedeutet dies:
SECONDS=0 ; make -j4 ; DAUER=$SECONDS; echo "$(($DAUER / 3600)) Stunden, $((($DAUER / 60) % 60)) Minuten und $(($DAUER % 60)) Sekunden vergangen."
Libe Grüße,
Jan