exec
substitui o shell pelo comando fornecido, como exec()
de chamada do sistema. Quando o comando (o kill
, aqui) parar, o shell não existe mais, portanto não há como o script continuar.
As duas exceções são 1) quando exec
recebe redirecionamentos, caso em que apenas os aplica no shell atual, e 2) quando o comando não pode ser executado, caso em que exec
dá erro e retorna um código falsamente de saída.
Portanto, exec kill ...
é quase o mesmo que kill ... ; exit
. Não exatamente o mesmo, mas perto o suficiente neste caso.