Existen estos dos nombres: un subshell y un shell secundario .
Sí, se iniciará un proceso secundario por cualquiera de estos:
sh -c 'echo "Hello"'
( echo "hello" )
echo "$(echo "hello")
echo "hello" | cat
¿Son todos equivalentes y comparten el mismo nombre? ¿Todos comparten las mismas propiedades?
POSIX tiene esta definición :
Un entorno de ejecución de shell consta de ...
Pero el último párrafo del enlace anterior tiene esto:
Se creará un entorno de subshell como duplicado del entorno de shell, excepto que las trampas de señal que no se ignoran se establecerán en la acción predeterminada.
Y especialmente:
La sustitución de comandos, los comandos que están agrupados entre paréntesis y las listas asincrónicas se ejecutarán en un entorno de subshell. Además, cada comando de una tubería de comandos múltiples se encuentra en un entorno de subshell; ....
El sh -c 'echo "Hello"'
no está incluido allí, ¿debería eso llamarse también una subshell?