Различия между оболочками bash и ksh

Я всегда считал, что под-оболочка - это не дочерний процесс, а другая оболочка в том же процессе.

Я использую базовый набор встроенных модулей:

(echo "Hello";read)

На другом терминале:

ps -t pts/0
  PID TTY          TIME CMD
20104 pts/0    00:00:00 ksh

Таким образом, в kornShell (ksh) нет дочерних процессов.

Введите bash, похоже, он ведет себя по-разному, учитывая ту же команду:

  PID TTY          TIME CMD
 3458 pts/0    00:00:00 bash
20067 pts/0    00:00:00 bash

Итак, дочерний процесс в bash.

Из чтения справочных страниц по bash становится очевидным, что для под-оболочки создается другой процесс, однако он подделывает $, что является хитрым.

Ожидается ли эта разница между bash и ksh, или я неправильно читаю симптомы?

Редактировать: дополнительная информация: Бегstrace -f на bash и ksh на Linux показывает, что bash вызываетclone дважды для образца команды (это не вызываетfork). Так что Bash может использовать потоки (я пыталсяltrace но это ядро сброшено!). KornShell не вызывает ниforkvforkниclone

Ответы на вопрос(3)

Ваш ответ на вопрос