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 .