When a process is started from a shell, why does the shell fork itself before executing the process?
For example, when the user inputs
grep blabla foo, why can't the shell just call
exec() on grep without a child shell?
Also, when a shell forks itself within a GUI terminal emulator, does it start another terminal emulator? (such as