exec
substitui o executável shell atual por outro executável , ou seja, um comando externo, no mesmo processo. Como não há shell para executar nada, conceitos de shell como aliases, funções, builtins ou comandos compostos não podem ser invocados via exec
. (A sintaxe não permite comandos compostos de qualquer maneira.)
O shell não sai quando o comando executado com exec
terminar a execução. O shell programa termina quando executa exec
, no sentido de que seu código para de executar (mas, mais uma vez, o processo não sai). O shell processo continua executando o novo programa. Quando o programa executado termina, o pai do processo é notificado como de costume; cabe a ele reagir a qualquer erro.