Простая палатализация с bash
Вы можете создать функцию и передать переменную $a
в качестве первого параметра и запустить ее в фоновом режиме &
, или вы можете просто поставить &
в концеВаша команда в цикле for, я предпочитаю функции.
Функция использует первый параметр $1
и делает то, что вам нравится, каждый раз, когда она вызывается.
wait
будет ждать, пока весь фоновый процесс завершитсязавершен, иначе сценарий может быть завершен до фоновых процессов.
#!/bin/bash
#testing script
myfunction () {
./cvp -v -w 256 -F 16,0,0,0,0 -f 5 file_${1}.gz >>output_${1} pc_${1} ${1}
}
for a in {0..29}
do
set -x
myfunction ${a} &
done
wait
Если вам нравится использовать gnu -rallel, я уверен, что кто-нибудь также поможет.Это дает больший контроль над палатализацией, например, запускайте столько заданий, сколько у вас есть ядра процессора.Мой пример выше, не проверяющий такие вещи, просто запустите их все.
Так что мой пример, как он есть, не является хорошим решением, если вы хотите запустить большое количество процессов сразу.