Es gibt diese beiden Namen: eine Subshell und eine Child-Shell .
Ja, ein untergeordneter Prozess wird folgendermaßen gestartet:
sh -c 'echo "Hello"'
( echo "hello" )
echo "$(echo "hello")
echo "hello" | cat
Sind alle gleichwertig und haben denselben Namen? Teilen alle die gleichen Eigenschaften?
POSIX hat diese Definition :
Eine Shell-Ausführungsumgebung besteht aus ....
Der letzte Absatz des obigen Links enthält jedoch Folgendes:
Eine Subshell-Umgebung wird als Duplikat der Shell-Umgebung erstellt, mit der Ausnahme, dass Signalfallen, die nicht ignoriert werden, auf die Standardaktion gesetzt werden.
Und speziell:
Befehlssubstitution, Befehle, die in Klammern gruppiert sind, und asynchrone Listen müssen in einer Subshell-Umgebung ausgeführt werden. Darüber hinaus befindet sich jeder Befehl einer Pipeline mit mehreren Befehlen in einer Subshell-Umgebung. ....
Das sh -c 'echo "Hello"'
ist dort nicht enthalten, sollte das auch Subshell genannt werden?