Tôi có một tập lệnh Perl thực hiện một số tác vụ, một trong số đó là gọi một lệnh system
tới "tar -cvf file.tar....."
. Điều này thường có thể mất một thời gian vì vậy tôi muốn dòng lệnh để echo trở lại một chỉ số tiến bộ, một cái gì đó giống như một #
vang vọng trở lại màn hình trong khi các cuộc gọi system
đang được tiến hành.Hiển thị tiến trình trong khi chạy lệnh system() trong Perl
Tôi đã thực hiện một số thao tác xung quanh và tình cờ gặp fork
. Đây có phải là cách tốt nhất để đi không? Có thể ngã ba khỏi lệnh system
, sau đó tạo một vòng lặp while để kiểm tra tình trạng của $pid
được trả về bởi ngã ba không?
Tôi cũng đã xem các tham chiếu đến waitpid
.... Tôi đoán là tôi cũng cần sử dụng tính năng này.
fork system("tar ... ")
while (forked process is still active) {
print #
sleep 1
}
Tôi có đang sủa nhầm cây không?
Rất cám ơn John
Giá trị trả lại của 'ngã ba' là ID tiến trình của trẻ, nếu đó là cha mẹ hoặc 0 nếu đó là con hoặc không xác định nếu ngã ba không thành công. Xem ngã ba perldoc -f. –