Que método executa na saída do bash via CTRL-D?

2

Semelhante a um post sobre cd , eu substituí exit para fazer o seguinte:

function exit() { $HOME/script.sh && builtin exit "$@"; }

Embora isso funcione como esperado quando exit é chamado diretamente, quando o shell é encerrado via CTRL-D, isso não é executado, OU, se for executado, o script não consegue terminar.

O que dá? Algum método diferente de exit é chamado quando o CTRL-D é usado?

    
por bossylobster 12.02.2013 / 08:26

2 respostas

6

Quando você pressiona Ctrl + D , o que você realmente diz para bash é EOF (fim do arquivo). Assim, o shell termina apenas porque não há mais entrada para ler. Se você quiser executar ações na saída, use uma armadilha:

trap "~/script.sh" exit

Usando a armadilha "exit", você pode executar qualquer comando shell logo antes do shell, e não importa se o shell foi terminado por exit ou por Ctrl + D .

    
por 12.02.2013 / 09:20
0

Na página man bash: "Quando um shell de login é encerrado, o bash lê e executa comandos do arquivo ~ / .bash_logout, se existir."

    
por 12.02.2013 / 08:48

Tags