如果我有这个Perl应用程序:
print `someshellscript.sh`;
当一个 shell 脚本打印大量内容并且需要很长时间才能完成时,我该如何在脚本执行期间打印输出呢?
看起来 Perl 只会在 someshellscript.sh 完成后才打印结果,有没有办法在执行过程中刷新输出呢?
你可能想要做的是像这样:
open(F, "someshellscript.sh|");
while (<F>) {
print;
}
close(F);
这段代码运行 someshellscript.sh
脚本,并打开一个读取其输出的管道。 while
循环读取脚本生成的每一行输出并将其打印出来。欲了解更多信息,请参阅open文档页面。
system "someshellscript.sh";