如果我有这样的perl应用程式:

print `someshellscript.sh`;

这是打印一堆东西,需要很长的时间才能完成,我怎么能打印输出的shell脚本的执行过程中?

看起来像Perl的完成时将仅打印someshellscript.sh结果,有一种方法,使输出齐平执行的中间?

有帮助吗?

解决方案

你可能想要做的是这样的:

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

此运行someshellscript.sh并打开,读取其输出的管。所述while循环读取由脚本并打印生成的输出的每一行。请参阅打开文档页面的详细信息。

其他提示

这里的问题是,随着反引号逃逸存储你的脚本为一个字符串,然后您再进行打印。出于这个原因,就没有办法“冲洗”带有印记。

使用系统()命令应连续打印输出,但你将无法捕获输出:

system "someshellscript.sh";
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top