Câu trả lời:
Xem GNU song song để khởi chạy các quy trình con song song. Có cú pháp tương tự như xargs. Từ các tài liệu :
Để nén tất cả các tệp html bằng gzip chạy:
find . -name '*.html' | parallel gzip --best
Tôi không biết liệu đây có phải là cách tốt nhất để làm điều đó không, nhưng đây là những gì tôi nghĩ ra.
Sử dụng: batch.sh [number of processes to use]
đợt.sh:
end=$(( $1 - 1 ))
for i in `seq 0 $end`;
do
echo Spawning helper $i of $end
./helper.sh $i $1 &
done
người trợ giúp.sh:
n=$1
for file in ./*; do
# Your code here v
echo Processing file: $file
# ^
n=$((n+1))
n=$((n%$2))
done
Điều này sinh ra n quy trình mà mỗi quy trình xử lý một tệp sau đó bỏ qua (n - 1) tệp. Quá trình (i mod n) xử lý tệp thứ i.