Eu tenho dificuldades em aceitar o seu primeiro exemplo em que você inicia o trabalho em segundo plano e diz que está deixando você em "mid-air" e você tem que pressionar [Enter] para continuar.
Note que qualquer saída produzida pelo script em segundo plano será impressa após o prompt do shell - dando a ilusão de um prompt ausente (na verdade, o prompt do shell já está lá, mas rolado para cima). Você não precisa pressionar [Enter] para entrar no próximo comando!
O segundo exemplo ( exec ... &
) não faz nenhum sentido: o "e" comercial instrui o shell a iniciar o comando como um processo paralelo em segundo plano, enquanto o exec
instrui o shell a iniciar
Conclusão:
-
Você não precisa pressionar [Enter] (mas não é prejudicial se você fizer isso)
-
Como o shell script é iniciado como uma tarefa paralela, o e comercial pode ser omitido.
-
Usar
exec
faz todo o sentido, se o comando a ser iniciado for o último a ser executado pelo script, sacrificando o Shell e salvando um processo inútil.
[adicionado:] Apenas uma coisa veio à mente porque você pode pensar que você tem que pressionar [Enter]:
Enquanto o processo shell está exibindo o prompt de comando (aguardando seu próximo comando), não haverá notificação sobre os processos em segundo plano concluídos.
Você só receberá a notificação quando o shell exibir o próximo comando promt. Isso também pode levar à ilusão de que "é preciso pressionar [Enter] para permitir que um processo em segundo plano termine".