Como posso exibir a hora em que um comando foi executado no meu prompt bash?

6

Atualmente, meu prompt do bash parece com isso

$ echo $PS1
# \[\e[34m\][\t]\[\e[0m\] \[\e]0;\w\a\]\[\e[34m\]\u@\h: \[\e[34m\]\w\[\e[0m\]\n$
$

O problema é que \t exibirá apenas a hora em que o prompt foi renderizado (o que seria muito próximo do tempo de conclusão do último comando).

Para mim, seria mais útil exibir a hora em que o processo de comando atual foi iniciado. Existe uma maneira de fazer isso?

    
por Lazer 24.10.2010 / 06:47

2 respostas

6

Se eu entendi corretamente, você deseja alterar o prompt ao iniciar o comando atual. Eu não acho que o bash tem um recurso de mudança de prompt, mas você pode, talvez, redesenhar sobre o prompt, se você pode localizá-lo (não é tão fácil para comandos de várias linhas).

No zsh, você usaria a função precmd . Bash não tem um recurso semelhante, mas pode ser hackeado .

    
por 25.10.2010 / 00:26
4

Não, porque pode haver qualquer intervalo de tempo entre o prompt e você digitar seu comando e, em seguida, pressionar a tecla ENTER .

Você pode configurar um alias para um não comando (digamos doit ) que exiba a hora e depois execute o comando que foi passado. Isso exigiria que você se lembrasse de usá-lo sempre e funcionasse apenas em sistemas (e contas) nos quais você o configurou.

    
por 24.10.2010 / 10:42