How a shell runs a command: fork, exec, source and friends
./script.sh, exec ./script.sh, . ./script.sh and ./script.sh & look
alike and do four different things. What differs each time is whether a new
process exists, whose environment changes, what $? holds afterwards, and
who gets the terminal’s signals.