Unix Power Tools
The exec Command
by Mike Loukides
and Jerry Peek
02/10/2000
The exec command will execute a command in place of the current
shell; that is, it terminates the current shell and starts a new
process
in its place.
Historically, exec was often used to execute the last command
of a shell script. This would kill the shell slightly earlier;
otherwise, the shell would wait until the last command was finished.
This
practice saved a process and some memory. (Aren't you glad you're
using a modern system?
This sort of conservation usually isn't necessary any longer
unless your system limits the number of processes each user can have.)
exec can be used to replace one shell with another shell:
without incurring the additional overhead of having an unused shell
waiting for the new shell to finish.
exec also
manipulates file descriptors
in the Bourne shell.
When you use exec to manage file descriptors,
it does not replace the current process.
For example, the following command makes the standard input of all commands
come from the file formfile instead of the default place
(usually, your terminal):
More Unix Power Tools