Tôi đã viết một tập lệnh bash có định dạng sau:
#!/bin/bash
start=$(date +%s)
inFile="input.txt"
outFile="output.csv"
rm -f $inFile $outFile
while read line
do
-- Block of Commands
done < "$inFile"
end=$(date +%s)
runtime=$((end-start))
echo "Program has finished execution in $runtime seconds."
Các while
vòng lặp sẽ đọc từ $inFile
, thực hiện một số hoạt động trên dòng và đổ kết quả trong $outFile
.
Vì $inFile
dài hơn 3500 dòng, kịch bản sẽ mất 6-7 giờ để thực thi hoàn toàn. Để giảm thiểu thời gian này, tôi dự định sử dụng đa luồng hoặc chuyển đổi trong tập lệnh này. Nếu tôi tạo 8 tiến trình con, 8 dòng từ $inFile
đó sẽ được xử lý đồng thời.
Điều này có thể giải quyết như thế nào?