Não é realmente completamente diferente: você pode usar redirecionamentos com um comando
bash -c 'exec date > date.out' ; cat date.out
Por que não usá-lo sem um comando
bash -c 'exec > date.out; date' ; cat date.out
No UNIX shells como Bash e Korn shell exec são usados para dois usos específicos.
Seu uso para substituir o programa atual por outro, como em exec prog é compreensível. O nome exec é uma contração da família C de rotinas baseada em execve .
Se eu estivesse escrevendo um shell e queria um comando para abrir um arquivo, provavelmente chamaria de open , mas não, os shells Bash e Korn usam exec novamente, como em exec 3<file , por exemplo.
Por que o comando exec foi reutilizado para algo completamente diferente?
Tags shell