我有一個執行一些任務的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