Seu script é interrompido porque sudo su
inicia um novo processo de shell. Seu processo shell original - aquele que está executando o script - está aguardando o sub-shell terminar.
Eu proponho executar um script inteiro com privilégios de root em vez de pedir para fazer login como root no próprio script. Remova sudo su
parte do seu código e execute o script assim:
$ sudo ./yourscript
Esta é uma prática comum. Observe que os scripts de administração do sistema, como por exemplo update-grub
, não solicitam senha de root - eles devem ser executados como root.