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.
preexec
Executed 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.
precmd
Executed 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: