質問: さまざまなシェルでcoprocコマンドをどのように使用しますか? 誰かが coproc の使用方法の例をいくつか提供できますか?
回答: コプロセスは、最初にksh88シェル(1988)を含むシェルスクリプト言語で導入され、1993年より前のある時点でzshで導入されました。kshでコプロセスを起動する構文はcommand |&です。そこから始めて、print -pを使用してcommand標準入力に書き込み、read -pを使用してその標準出力を読み取ることができます。数十年後、この機能が欠けていたbashが4.0リリースでついに導入されました。残念ながら、互換性がなく、より複雑な構文が選択されました。bash 4.0以降では、coprocコマンドを使用してコプロセスを起動できます。例:$ coproc awk '{print $2;fflush();}' 次に、その方法でコマンドstdinに何かを渡すことができます。$ echo one two three >&${coproc[1]} そしてawk出力を次のように読みます:$ read -ru ${coproc[0]} foo $ echo $foo two kshでは、それは次のようになります。$ awk '{print $2;fflush();}' |& $ print -p "one two three" $ read -p foo $ echo $foo two