質問

私はこのperlのアプリをお持ちの場合:

print `someshellscript.sh`;

その原料の束を印刷し、私はシェルスクリプトの実行の途中でその出力を印刷する方法を、完了するまでに長い時間がかかりますか?

は、実行の途中で出力フラッシュを作るための方法があり、それが完了したときにのみsomeshellscript.sh結果を出力しますPerlのように見える?

役に立ちましたか?

解決

このような何かあなたはおそらく何をしたいです。

open(F, "someshellscript.sh|");
while (<F>) {
    print;
}
close(F);

このはsomeshellscript.shを実行し、その出力を読み込み、パイプを開きます。 whileループは、スクリプトによって生成される出力の各行を読み取り、それを印刷します。詳細については、のドキュメントページを開くrel="noreferrer">の

他のヒント

ここでの問題は、バッククォートをエスケープすることはあなたがして印刷した文字列のために、スクリプトを保存することです。このため、プリントで「フラッシュ」にする方法はありません。

システム()コマンドを使用すると、連続して出力を印刷する必要がありますが、あなたは出力をキャプチャすることができなくなります:

system "someshellscript.sh";
scroll top