Eu tenho um mecanismo complicado incorporado no meu ambiente bash que requer a execução de alguns scripts quando o prompt é gerado, mas também quando o usuário pressiona enter para iniciar o processamento de um comando. Vou dar uma descrição simplificada:
A armadilha de depuração faz isso de uma maneira bastante limitada: é acionada toda vez que uma instrução é executada.
trap 'echo $BASH_COMMAND' DEBUG # example only
Infelizmente, isso significa que quando eu digito isso:
sleep 1; sleep 2; sleep 3
em vez de processar um $ BASH_COMMAND que contém toda a linha, recebo os três dormes em três armadilhas diferentes. Pior ainda:
sleep 1 | sleep 2 | sleep 3
aciona os três enquanto o tubo é configurado - antes que o sono 1 comece a ser executado, a saída pode levar você a acreditar que o sono 3 está em execução.
Preciso de uma maneira de executar um script logo no início, processando o comando inteiro, e prefiro que não seja acionado quando o comando prompt for executado, mas posso lidar com isso se for necessário.