En tcsh
, está la 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.
¿Cómo hago esto bash
?
fuente
En tcsh
, está la 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.
¿Cómo hago esto bash
?
No creo que pueda lograr exactamente el mismo efecto sin modificar la fuente bash. Pero puedes acercarte, ojalá lo suficientemente cerca para ti.
Puede combinar el gancho de precomando hacky de bash y la SECONDS
variable para mostrar la hora del reloj de pared de una manera no intrusiva. Aquí hay una implementación simple debido a Ville Laurikari . Las funciones timer_start
y timer_stop
se ejecutan inmediatamente antes de iniciar un comando e inmediatamente antes de mostrar el siguiente mensaje.
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]$ '
Para obtener la time
información completa de cada comando, he aquí una forma debido a Dennis Williamson :
bind '"\C-j": "\C-atime {\C-e;}\C-m"'
Cuando presiona Ctrl+ en Jlugar de Enteriniciar un comando, obtendrá información de tiempo. No se recomienda volver a vincular Enter(es decir, Ctrl+ M) porque el comando modificado a veces será sintácticamente incorrecto.
Consulte ¿Cómo se puede poner el tiempo de la pared del último comando en la solicitud Bash? y cronometrando automáticamente cada comando ejecutado y mostrar en la solicitud de Bash? en Stack Overflow para otros métodos (tenga en cuenta que la mayoría solo proporciona el tiempo real transcurrido, no el tiempo de CPU).