Je ne pense pas que vous puissiez obtenir exactement le même effet sans modifier la source bash. Mais vous pouvez vous rapprocher, espérons-le suffisamment pour vous.
Vous pouvez combiner le crochet de précommande hacky de bash et la SECONDS
variable pour afficher l'heure de l'horloge murale de manière non intrusive. Voici une implémentation simple grâce à Ville Laurikari . Les fonctions timer_start
et timer_stop
sont exécutées immédiatement avant de lancer une commande et immédiatement avant d'afficher l'invite suivante.
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]$ '
Pour obtenir les time
informations complètes pour chaque commande, voici un moyen dû à Dennis Williamson :
bind '"\C-j": "\C-atime {\C-e;}\C-m"'
Lorsque vous appuyez sur Ctrl+ Jau lieu de Enterpour démarrer une commande, vous obtenez des informations sur l'heure. Une nouvelle liaison Enter(c'est-à-dire Ctrl+ M) n'est pas recommandée car la commande modifiée sera parfois syntaxiquement incorrecte.
Voir Comment l'heure du mur de la dernière commande peut-elle être mise dans l'invite Bash? et chronométrer automatiquement chaque commande exécutée et l'afficher dans l'invite Bash? sur Stack Overflow pour d'autres méthodes (notez cependant que la plupart ne donnent que le temps réel écoulé, pas le temps CPU).
Gilles 'SO- arrête d'être méchant'
la source