Você deseja o comando stty : veja como ^ D é mapeado com stty -a . Você pode mudar isso para outra coisa com stty eof char : remova a configuração "eof" com stty eof undef
Não testado: você deseja ler sobre o comando trap na página do manual do ksh. Pode ser suficiente configurar um manipulador para o sinal EXIT .
# warning: completely untested
exit_handler() { echo "exit"; exit; }
trap exit_handler EXIT