Você pode fazer isso com bash-preexec .
Faça o download do script:
wget 'https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh'
fonte do script:
source 'bash-preexec.sh'
Agora, de acordo com suas notas de uso :
Two functions preexec and precmd can now be defined and they'll be automatically invoked by bash-preexec if they exist.
preexecExecuted just after a command has been read and is about to be executed. The string that the user typed is passed as the first argument.
precmdExecuted just before each prompt. Equivalent to PROMPT_COMMAND, but more flexible and resilient.
Você pode usá-los da seguinte forma:
preexec() { echo "just typed $1"; }
precmd() { echo "printing the prompt"; }
Também pode valer a pena mencionar que o bash-preexec é apenas um script de shell que é implementado usando a variável de ambiente DEBUG e PROMPT_COMMAND .
Para obter mais informações sobre o DEBUG trap, consulte a documentação de referência do comando trap :
Para mais informações sobre a variável de ambiente PROMPT_COMMAND , consulte o manual de Bash: