In tcsh
gibt es die Variable time
:
The time shell variable can be set to execute the time builtin command
after the completion of any process that takes more than a given number
of CPU seconds.
Wie mache ich das in bash
?
quelle
In tcsh
gibt es die Variable time
:
The time shell variable can be set to execute the time builtin command
after the completion of any process that takes more than a given number
of CPU seconds.
Wie mache ich das in bash
?
Ich denke nicht, dass Sie genau den gleichen Effekt erzielen können, ohne die Bash-Quelle zu modifizieren. Aber du kannst nah kommen, hoffentlich nah genug für dich.
Sie können den Hacky Precommand Hook von bash und die SECONDS
Variable kombinieren, um die Uhrzeit der Wanduhr auf nicht aufdringliche Weise anzuzeigen . Hier ist eine einfache Implementierung von Ville Laurikari . Die Funktionen timer_start
und timer_stop
werden unmittelbar vor dem Starten eines Befehls und unmittelbar vor dem Anzeigen der nächsten Eingabeaufforderung ausgeführt.
function timer_start {
timer=${timer:-$SECONDS}
}
function timer_stop {
timer_show=$(($SECONDS - $timer))
unset timer
}
trap 'timer_start' DEBUG
PROMPT_COMMAND=timer_stop
PS1='[last: ${timer_show}s][\w]$ '
Um die vollständigen time
Informationen für jeden Befehl zu erhalten, gibt es für Dennis Williamson einen Weg :
bind '"\C-j": "\C-atime {\C-e;}\C-m"'
Wenn Sie Ctrl+ drücken, Janstatt Entereinen Befehl zu starten, erhalten Sie Zeitinformationen. Ein erneutes Binden Enter(dh Ctrl+ M) wird nicht empfohlen, da der geänderte Befehl manchmal syntaktisch falsch ist.
Siehe Wie kann die Wandzeit des letzten Befehls in die Bash-Eingabeaufforderung eingefügt werden? und Automatisches Timing jedes ausgeführten Befehls und Anzeige in der Bash-Eingabeaufforderung? on Stack Overflow für andere Methoden (beachten Sie jedoch, dass die meisten nur die verstrichene Echtzeit angeben, nicht die CPU-Zeit).