この2つの名前があります。サブシェルと子シェルです。
はい、子プロセスは次のいずれかによって開始されます:
sh -c 'echo "Hello"'
( echo "hello" )
echo "$(echo "hello")
echo "hello" | cat
すべて同等で、同じ名前を共有していますか?すべて同じプロパティを共有していますか?
POSIXには次の定義があります。
シェル実行環境は...で構成されています。
しかし、上記のリンクの最後の段落にはこれがあります:
サブシェル環境は、無視されないシグナルトラップがデフォルトのアクションに設定されることを除いて、シェル環境の複製として作成されます。
そして特に:
コマンド置換、括弧でグループ化されたコマンド、および非同期リストは、サブシェル環境で実行されます。さらに、マルチコマンドパイプラインの各コマンドはサブシェル環境にあります。....
sh -c 'echo "Hello"'
そこに含まれていない、それもサブシェルと呼ばれるべき?