Bash làm điều này cho bạn. Nó sẽ thông báo cho bạn khi quá trình kết thúc bằng cách cho bạn quyền kiểm soát lại và nó sẽ lưu trạng thái thoát trong biến đặc biệt $?
. Nó trông đại khái như thế này:
someprocess
echo $?
Xem hướng dẫn sử dụng bash về các thông số đặc biệt để biết thêm thông tin.
Nhưng tôi cho rằng bạn muốn làm việc khác trong khi chờ đợi. Trong bash bạn có thể làm điều đó như thế này:
someprocess &
otherwork
wait %+
echo $?
someprocess &
sẽ bắt đầu quá trình trong nền. Điều đó có nghĩa là kiểm soát sẽ trở lại ngay lập tức và bạn có thể làm công việc khác. Một quá trình bắt đầu trong nền được gọi là một công việc trong bash. wait
sẽ đợi công việc đã cho kết thúc và sau đó trả về trạng thái thoát của công việc đó. Việc làm được tham chiếu bởi %n
. %+
đề cập đến công việc cuối cùng bắt đầu. Xem hướng dẫn bash về kiểm soát công việc để biết thêm thông tin.
Nếu bạn thực sự cần PID, bạn cũng có thể làm như thế này:
someprocess &
PID=$!
otherwork
wait $PID
echo $?
$!
là một biến đặc biệt có chứa PID của quá trình nền bắt đầu cuối cùng.
wait
làm việc? Thông thường nó sẽ lấy bao nhiêu CPU từ hệ thống?