题
如果我有这样的perl应用程式:
print `someshellscript.sh`;
这是打印一堆东西,需要很长的时间才能完成,我怎么能打印输出的shell脚本的执行过程中?
看起来像Perl的完成时将仅打印someshellscript.sh结果,有一种方法,使输出齐平执行的中间?
解决方案
你可能想要做的是这样的:
open(F, "someshellscript.sh|");
while (<F>) {
print;
}
close(F);
此运行someshellscript.sh
并打开,读取其输出的管。所述while
循环读取由脚本并打印生成的输出的每一行。请参阅打开文档页面的详细信息。
其他提示
这里的问题是,随着反引号逃逸存储你的脚本为一个字符串,然后您再进行打印。出于这个原因,就没有办法“冲洗”带有印记。
使用系统()命令应连续打印输出,但你将无法捕获输出:
system "someshellscript.sh";
不隶属于 StackOverflow