4

stdout から変更されたコンテンツを読み取る前に、子プロセスを実行してファイルを (2 つのステップで) 変更しようとしています。私はbashで完全に機能するプロセス置換を使用してこれを実行しようとしていますが、ノードから試した場合は機能しません。

これは、コマンドがどのように見えるかのようなものです..

var p = exec('command2 <(capture /dev/stdout | command1 -i file -) -',
function (error, stdout, stderr) {
   console.log(stderr);
});

stderr 出力:

/bin/sh: -c: line 0: syntax error near unexpected token `('

ノードでこれを行う適切な方法は何ですか?

4

4 に答える 4

3

コマンドをシェルスクリプトに入れ、ノードの子プロセスからスクリプトを呼び出すことでこれを解決しました。プロセスの置換を可能にするために、bash を posix モードに設定するには、以下を追加する必要もありました。

set +o posix

おそらくノード内から直接これを行うより良い方法がありますが、それでうまくいきました。乾杯!

于 2013-07-26T10:07:20.213 に答える