Так. Розпилювання написано &:
echo child & echo parent
Що може вас бентежити, це те, що $$це не PID процесу оболонки, це PID початкового процесу оболонки. Сенс зробити це таким чином полягає в тому, що $$це унікальний ідентифікатор для конкретного екземпляра скрипта оболонки: він не змінюється під час виконання сценарію, і відрізняється від $$будь-якого іншого одночасно запущеного сценарію. Один із способів отримати власне PID процесу оболонки - це sh -c 'echo $PPID'.
Контрольний потік в оболонці не такий, як C. Якщо в C ви б написали
first(); fork(); second(); third();
то еквівалент оболонки є
after_fork () { second; third; }
first; after_fork & after_fork
Проста форма оболонки first; child & parentвідповідає звичайній ідіомі С
first(); if (fork()) parent(); else child();
&і $$існувати і вести себе таким чином у кожній оболонці в стилі Борна та в (t) csh. $PPIDне існувало в оригінальній оболонці Борна, але знаходиться в POSIX (так що це в золі, bash, ksh, zsh,…).