. script1
- не отдельный процесс; script1 выполняется в текущей оболочке. см. help .
./script2
- как и при вызове любой внешней команды, разветвляется новый процесс и ожидает завершения
. script3 &
- да, отдельный процесс. Пример:
$ 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
Смотрите руководство по bash, Списки команд:
Если команда завершается оператором управления '&', оболочка выполняет команду асинхронно в подоболочке.
./script4 &
- да, отдельный процесс.