. script1
- não é um processo separado; O script1 é executado no shell atual . veja help .
./script2
- assim como chamar qualquer comando externo, bifurca um novo processo e aguarda conclusão
. script3 &
- sim, um processo separado. Um exemplo:
$ cat script3
sleep 300
$ . script3 &
[1] 15136
$ echo $$
15102
$ ps -ef | grep $$
jackman 15102 32659 0 09:43 pts/0 00:00:00 bash
jackman 15136 15102 0 09:44 pts/0 00:00:00 bash
jackman 15157 15102 0 09:44 pts/0 00:00:00 ps -ef
jackman 15158 15102 0 09:44 pts/0 00:00:00 grep --color=auto 15102
Veja o manual da bash, Lista de comandos :
If a command is terminated by the control operator ‘&’, the shell executes the command asynchronously in a subshell.
./script4 &
- sim, um processo separado.