3 回実行する必要があるコマンドがあります。stdout に大量の出力が生成され、約 1 分かかります。3 つのコマンドが終了したら、4 番目の (別の) コマンドを実行する必要があります。シェル スクリプトは次のようになります。
#!/bin/sh
command arg1 arg2
command arg1 arg2
command arg1 arg2
something_else
ループで使用することを考えてchild_process.exec()
いましたが、それは終了するまで stdout をバッファリングします (右?)。ユーザーにすぐにフィードバックを提供する必要があるため、stdout を 1 秒以上バッファリングすることはお勧めできません。だから私は使用する必要がありますchild_process.spawn()
が、非同期処理は私を少し狂わせます。spawn 呼び出しを次のような関数に入れることを考えていました。
fucnction myfunc(runs) {
if (runs >= 1) {
myproc = spawn(...)
myproc.on('exit',function() { myfunc(runs - 1) })
}
}
これはうまくいくと思います。しかし、より良い方法はありますか?私は UNIX システムとおそらく Windows システムを使用しています。