У меня есть bash script, который содержит другие скрипты внутри, которые запускаются последовательно. Однако для их запуска требуется достаточно времени. Есть ли способ запускать эти сценарии параллельно, чтобы улучшить общую производительность? Они независимы друг от друга.
Он похож на:
#!/bin/bash
#some code here
cppcheck.sh
churn.sh
run.sh
Update:
**git log --pretty=format: --numstat | perl -ane'$c{$F[2]} += abs($F[0]+$F[1])
if $F[2];END {print "$_\t$c{$_}\n" for sort keys %c}' > ${OUTPUT_DIR}/churn.txt**
sed -i -e '/deps/d;/build/d;/translations/d;/tests/d' -e 30q ${OUTPUT_DIR}/churn.txt
sort -r -n -t$'\t' -k2 ${OUTPUT_DIR}/churn.txt -o ${OUTPUT_DIR}/churn.txt
echo "set term canvas size 1200, 800; set output '${OUTPUT_DIR}/output.html';
unset key; set bmargin at screen 0.4; set xtics rotate by -90 scale 0,0;
set ylabel 'Number of lines changed (total)'; set title 'Files with high churn
level';set boxwidth 0.7; set style fill solid; set noborder;
plot '${OUTPUT_DIR}/churn.txt' using 2:xticlabels(1) with boxes" | gnuplot
echo "finished running churn.sh!"
Это код внутри churn.sh. Команде bold требуется около 40 секунд для реализации. Если в главном script я помещаю амперсанд после churn.sh &, он выдает сообщение об ошибке, когда sed не может прочитать файл churn.txt(так как он еще не создан). Кажется, что он не дожидается, пока вывод не будет сохранен в файле. Я вставил wait после этой команды, но это не помогает.