Risposte:
Non penso che tu possa ottenere esattamente lo stesso effetto senza modificare la fonte bash. Ma puoi avvicinarti, si spera abbastanza vicino per te.
È possibile combinare il gancio di precomando hacky di bash e la SECONDS
variabile per mostrare l'ora dell'orologio da parete in modo non intrusivo. Ecco una semplice implementazione dovuta a Ville Laurikari . Le funzioni timer_start
e timer_stop
vengono eseguite immediatamente prima di avviare un comando e immediatamente prima di visualizzare il prompt successivo.
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]$ '
Per ottenere le time
informazioni complete per ogni comando, ecco un modo dovuto a Dennis Williamson :
bind '"\C-j": "\C-atime {\C-e;}\C-m"'
Quando premi Ctrl+ Jinvece di Enteravviare un comando, otterrai informazioni sul tempo. Si consiglia di non ricollegare Enter(ovvero Ctrl+ M) perché il comando modificato talvolta è sintatticamente errato.
Vedi Come si può inserire l'ora del muro dell'ultimo comando nel prompt di Bash? e Cronometrare automaticamente ogni comando eseguito e mostrare nel prompt di Bash? su Stack Overflow per altri metodi (notare tuttavia che la maggior parte fornisce solo il tempo reale trascorso, non il tempo della CPU).