Existe uma maneira de mostrar o tempo decorrido desde que iniciei o último comando? Eu encontrei isso: PS1 prompt para mostrar o tempo decorrido, mas isso mostrará o tempo decorrido desde o último comando concluído até o novo comando ser concluído.
Minha ideia é de alguma forma forçar o prompt a adicionar time
antes de cada comando que eu digito e formatá-lo de uma maneira agradável.
Algo assim:
$ ls
. ..
Last command took 0.001s
$
Você precisa de duas funções e um temporizador. A primeira função é executada logo após você pressionar enter na linha de comando, mas antes do início do comando real. A segunda função é executada após a conclusão do comando, mas antes que o prompt seja exibido. O temporizador apenas conta os segundos desde que você inicia o shell. Nestes
zsh
três ganchos são chamadosprecmd
,preexec
eSECONDS
respectivamente.No
bash
nome do timer é o mesmo, a funçãoprecmd
se torna uma variávelPROMPT_COMMAND
, mas infelizmente a funçãopreexec
está faltando, então você precisa escrever você mesmo (nada extremamente desafiador, mas também não trivial) ou instalar o gancho já escrito de fonte externa, por exemplo https://github .com/rcaloras/bash-preexec .Agora só precisamos colar todas as peças, o código mínimo se parece com isso:
Coloque tudo
.bashrc
.