Além de enviá-los para o segundo plano, use o wait
incorporado para aguardar que todos os processos em segundo plano sejam concluídos antes de continuar.
for el in $test1_partition
do
(scp david@${SERVER_LOCATION[0]}:$dir1/pp_monthly_9800_"$el"_200003_5.data $TEST1/. || scp david@${SERVER_LOCATION[1]}:$dir2/pp_monthly_9800_"$el"_200003_5.data $TEST1/.) &
WAITPID="$WAITPID $!"
done
for sl in $test2_partition
do
(scp david@${SERVER_LOCATION[0]}:$dir1/pp_monthly_9800_"$sl"_200003_5.data $TEST2/. || scp david@${SERVER_LOCATION[1]}:$dir2/pp_monthly_9800_"$sl"_200003_5.data $TEST2/.) &
WAITPID="$WAITPID $!"
done
wait $WAITPID
echo "All files done copying."