Eu tentei o seguinte no meu .bashrc
:
echo -ne "$PS1"
while IFS= read -er line;do
eval "time $line"
echo -ne "$PS1"
done
Isso faz aproximadamente o que você quer com várias ressalvas:
- Seu prompt está praticamente arruinado (o shell geralmente interpreta sequências como
\W
e assim por diante no seu prompt antes de ecoá-lo). - Você perde os recursos de edição de linha de comando (por exemplo, você não pode usar CTRL + L para
clear
). - Provavelmente vários outros.
Acho que um bom compromisso seria ativá-lo seletivamente por meio de uma função de shell:
timed_commands() {
[ "$1" = off ] && exec bash
PS1='$ ' # Put something simple here
while IFS= read -erp "$PS1" line;do
eval "time $line"
done
}
Ativá-lo com timed_commands
e desativá-lo com timed_commands off
Obrigado ao comentário do @jthill sobre a -e
mudar para read
.