Để tối đa hóa việc sử dụng CPU (tôi chạy mọi thứ trên một Lenny Debian trong EC2) Tôi có một kịch bản đơn giản để khởi động công việc song song:Chờ cho việc làm nền bash trong kịch bản được hoàn thành
#!/bin/bash
for i in apache-200901*.log; do echo "Processing $i ..."; do_something_important; done &
for i in apache-200902*.log; do echo "Processing $i ..."; do_something_important; done &
for i in apache-200903*.log; do echo "Processing $i ..."; do_something_important; done &
for i in apache-200904*.log; do echo "Processing $i ..."; do_something_important; done &
...
Tôi khá hài lòng với giải pháp làm việc này, tuy nhiên tôi không thể tìm ra cách viết thêm mã mà chỉ thực thi khi tất cả các vòng lặp đã được hoàn thành.
Có cách nào để kiểm soát điều này không?
Điều đó đã nhanh chóng và giải quyết được vấn đề của tôi, cũng kiếm được, cảm ơn! – mark
gợi ý sử dụng '' 'chờ $ (jobs -p)' '' để chờ cho các công việc mới được tạo ra. – lambacck
cảm ơn bạn @lambacck – pabloa98