Я могу себе представить два простых способа сделать это. Вы можете передать содержимое файла по конвейеру parallel
или написать сценарий оболочки. Если все, что вы хотите выполнить, - это конкретный набор задач, то сценарий оболочки может иметь больше смысла. Это было бы очень коротко, мило и по существу:
#!/bin/sh
parallel -j 3 -- "php index.php import file1 --offline" "php index.php import file2 --deleteUnused" "php index.php import file3"
Теперь, если вы хотите что-то более обобщаемое (то есть что-то, что вы можете создать несколько наборов команд для загрузки в виде группы), тогда это может быть проще придумать простой формат файла и затем передать содержимое файла в parallel
.
Самый простой способ сделать это - включить в текст дословные команды, которые вы хотите выполнить.
Например, если бы это был ваш текстовый файл ( test.txt
):
"php index.php import file1 --offline" "php index.php import file2 --deleteUnused" "php index.php import file3"
Затем вы могли бы запустить следующее, и все могло бы работать нормально:
$ cat test.txt | parallel -j 3 --
Вы также можете поэкспериментировать с немного более сложный формат файла (например, каждая команда в новой строке и не в кавычках). Если бы вы пошли по этому пути, вам нужно было бы провести небольшой синтаксический анализ файла перед его подключением к parallel
, что можно было бы довольно легко сделать, например, с помощью awk
.
Однако, если вы решите создать более гибкий формат файла, подобный этому, может быть полезно создать вспомогательный сценарий оболочки (или функцию), которая избавит вас от необходимости вводить awk '<любые шаблоны, которые вы соответствуете > {сделай что-нибудь} '| parallel -j3 -
каждый раз.
Этот старый обходной путь, похоже, все еще работает
mylibdir = $(libdir)
dist_mylib_SCRIPTS = libxxx.so