"コマンド置換"は、コマンドを実行してそのコマンドの出力を置き換えることができるシェル言語の機能の名前です(置換)コマンドのテキスト。
これを可能にするシェル言語の他の機能はありません。
コマンド置換、つまり式は、コマンド置換の主な用途である出力に置き換えられます。
コマンド置換が実行するコマンドは、サブシェル。これは、親シェルの環境に影響を与えない独自の環境があることを意味します。
すべてのサブシェルの実行がコマンド置換であるとは限りません。 ugh(最後にある他の例を参照)。
コマンド置換がサブシェルで実行されることを示す例:
$ s=123 $ echo "hello $( s=world; echo "$s" )" hello world $ echo "$s" 123
ここでは、変数s
は文字列123
に設定されます。次の行で、コマンド置換の結果を含む文字列に対してecho
が呼び出されます。コマンド置換により、s
が文字列world
に設定され、この文字列がエコーされます。文字列world
は、コマンド置換でのコマンドの出力であるため、これがset -x
、上記の2行目がecho "hello world"
に展開され、ターミナルでhello world
が生成されることがわかります。
$ set -x $ echo "hello $( s=world; echo "$s" )" ++ s=world ++ echo world + echo "hello world" hello world
(bash
は、次のすべてのレベルに+
プロンプトのレベルを追加します。トレース出力のコマンド置換サブシェル、他のシェルはこれを実行しない場合があります)
最後に、コマンド置換内のコマンドが<の値に影響を与えなかったため、独自のサブシェルで実行されたことを示します。呼び出し元のシェルのdivid = "eea2fd45a3">