2013-12-13 44 views
5

tôi đang xem xét vấn đề này ở đây, nhưng nó dường như không được làm việc cho tôi: How to get the process id of a bash subprocess on command lineBash get quá trình ID của một quá trình bắt đầu vào năm subshell

Vì vậy, tôi đã một lệnh tôi bắt đầu trong một subshell, như:

(sleep 10 &) 

Làm cách nào tôi có thể nhận được ID quá trình của lệnh ngủ đó và đợi?

Nếu tôi thực hiện ps sau khi không có ID quá trình nào từ liên kết ở trên khớp với những gì tôi thấy.

Cảm ơn.

Trả lời

4

Cha mẹ là quá trình duy nhất có thể chờ đợi một đứa trẻ hoàn thành đúng cách, vì vậy bạn sẽ muốn làm việc chờ đợi từ vỏ bọc con.

(sleep & wait) 
(sleep & pid=$!; wait $pid) 
+1

Hoặc không tạo vỏ con ngay từ đầu - hãy bỏ dấu ngoặc đơn. – tripleee

Các vấn đề liên quan