我有一个执行一些任务的Perl脚本,其中一个是调用system
命令到"tar -cvf file.tar....."
。在Perl中运行system()命令时显示进度
这通常需要一些时间,所以我希望命令行能够回显一个进度指示器,例如#
回调到屏幕,而system
调用正在进行。
我一直在做一些挖掘并偶然发现了fork
。这是最好的方式吗?是否可以分叉system
命令,然后创建一个while循环来检查由fork返回的$pid
的staus?
我也见过参考waitpid
....我猜我也需要使用它。
fork system("tar ... ")
while (forked process is still active) {
print #
sleep 1
}
我吠叫错了树吗?
非常感谢 约翰
'fork'的返回值是孩子的进程ID(如果它是父代的),或者是0(如果它是孩子)或者是undef(如果分叉失败)。请参阅perldoc -f叉。 – 2010-07-07 08:44:00