Não tenho certeza se essa solução pode atender às suas necessidades, mas você pode tentar.
Se por um momento esquecer o desligamento / reinicialização do PC, o seguinte funciona no bash sem terminal de trapping (você pode testá-lo como um comando de linha para teste):
sleep 10 && yad --text="10 seconds passed" && exit &
Acima do comando, embora eu não esperava, funciona mesmo se eu fechar a janela do meu terminal.
PS: Se você combiná-lo com nohup manterá o comando em execução, mesmo que você efetue logout.
Como solução alternativa, você pode dividir seu script inicial em dois scripts menores; um script para instalação de um script para remoção, algo assim:
#script_to_install.sh
sudo apt-get install phpmyadmin
sudo phpenmod mcrypt mbstring
printf 'Include /etc/phpmyadmin/apache.conf' >> /etc/apache2/apache2.conf
sudo service apache2 restart
sleep 7200 && path/to/script_to_remove.sh &
exit #exit the first script to free terminal (or even close the terminal)
#end of script_to_install.sh
#script_to_remove.sh
#Optionally you can use xterm -e (or similar) to bring up a terminal window automatically to see the output of the commands
sudo phpdismod mcrypt mbstring
sudo apt-get purge phpmyadmin
sudo service apache2 restart
sed -i 's/Include \/etc\/phpmyadmin\/apache.conf/ /g /etc/apache2/apache2.conf
exit
#end of script_to_remove.sh
Voltando à parte de reinicialização do PC, acho que isso pode ser resolvido gravando a hora de início em um arquivo de log temporário e, depois de reinicializar, você pode monitorar esse arquivo temporário (ou seja, usando ferramentas inotify) para determinar o período de tempo decorrido (não testado).