var cp = require("child_process");
var proc = cp.spawn("cmd");
proc.stdout.on("data", data => console.log("Data:", data.toString()));
proc.stdin.write("help\n");
proc.stdin.write("help\n");
上記のコードスニペットでは、ストリームが特定のコマンドの書き込みを終了したとき(つまり、これらのコマンドが端末で実行された場合、テキストを入力することができる点滅カーソルを表示します)?node.jsのコンソール出力の終了を検出する
私はイベントend
を聞いてみることを試みましたが、これはプロセスが終了したときに発せられたように見えます。
@提案されているよう
別の方法としては、改行や新しいプロンプトとしてコマンド出力の終了を示す応答のいくつかの機能のために待つことができますコマンドプロンプトを生成し、そのコマンドを使ってコマンドを発行し、そのコマンドがいつ完了するかを検出しようとしていますか?これは悪い考えのように聞こえる、あなたがしようとしていることを詳しく説明できますか? – Will
私は例としてコマンドプロンプトを使用していますが、実際には 'ghci'と対話しようとしています。これはHaskellのreplとして実行できます。 replを通してnode.jsで発行されたコマンドの出力がいつ出力されたかを知りたい。 –
@ thing789あなたの子プロセスからあなたのマスタープロセスにコマンドを出力し、stdout経由でそれを聞くことができます。 – hownowbrowncow