Como executo um comando antes ou depois de cada comando escrito no console?

1

Eu quero executar um comando antes e depois de cada comando executado em um terminal (por exemplo, clear e reset ). Eu quero que isso aconteça automaticamente e não com um apelido curto ou similar.

Eu olhei para bashrc e / usr / share / bash-completion / bash_completion, embora este último pareça ser apenas para o recurso de auto-completar com a aba ?

Onde devo fazer minhas alterações?

    
por Katu 24.11.2016 / 13:14

1 resposta

3

No seu .bashrc :

function process_command() {
  ... do something with $BASH_COMMAND ...
}
trap process_command DEBUG

Para um bom exemplo, veja " Faça o show do gnome-terminal o comando executando como título "no AskUbuntu.

Para resolver a solicitação do pôster original para executar clear antes do comando e reset após o comando, adicione a .bashrc :

function before_command() { 
  case "$BASH_COMMAND" in
        $PROMPT_COMMAND)
          ;;
       *)
          clear;
  esac
}

function before_prompt() { reset ; }

trap before_command DEBUG
PROMPT_COMMAND=before_prompt

Em man bash , procure PROMPT_COMMAND e trap .-lp .

    
por AlexP 24.11.2016 / 14:38