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