これまで私の知る方法は主に2つです。
明らかに:コマンドリストを括弧で囲みます。
暗黙的に:パイプラインの各コマンド
Bashでサブシェルを生成するためのより多くの方法(明示的または暗黙的)がありますか?
ベストアンサー1
からman bash
:
- コマンドが制御演算子によって終了すると、
&
シェルはサブシェルのバックグラウンドでコマンドを実行します。シェルは、コマンドが完了するのを待たずに状態0を返します。 - コプロセスは予約語の前にあるシェルコマンドです
coproc
。
Coprocess は、コマンドと制御演算子を使用してコマンドが終了したかのように、サブシェルで非同期で実行されます。 - シェル組み込み
complete
コマンド:-C command
オプションと一緒に呼び出されると、command
サブシェル環境で実行され、その出力は可能な完成として使用されます。 - コマンド置換、括弧でグループ化されたコマンド、および非同期コマンドは、シェル環境と複製サブシェル環境で呼び出されます。