Supondo que você tenha verificado que é um shell de login ( shopt login_shell
):
~ / .bash_logout só será executado se você sair explicitamente do shell com exit
ou logout
ou digitando Control-D para inserir um fim de arquivo no prompt de comando. Se você fechar o emulador de terminal, os processos serão enviados em SIGHUP, e o bash não executará ~ / .bash_logout nesse caso.
Se você quiser executar o trabalho a qualquer momento, sairá (e se é um shell de login ou não), use trap foo EXIT
. A maneira mais conveniente de fazer isso é colocar seu código em uma função shell, por exemplo:
print_goodbye () { echo Goodbye; }
trap print_goodbye EXIT