Как вызвать сценарий оболочки несколько раз параллельно из другого приложения - PullRequest
1 голос
/ 20 мая 2019

Я работаю с Datastage, который использует Command Executable Stage для вызова параметризованного сценария оболочки. Этот вопрос не о потоке данных. речь идет о том, как вызвать сценарий оболочки.

Прямо сейчас, логика данных состоит в том, чтобы вызывать скрипт три раза, используя разные параметры для каждого его вызова. Например:

Call script.sh file1.txt -> Wait for `exit 0` -> call script.sh file2.txt -> Wait for `exit 0` -> call script.sh file3.txt -> wait for `exit 0`

Команда для вызова скрипта выглядит так:

/var/opt/scripts/Project/script.sh file1.txt

что я надеюсь сделать, так это вызвать все три сценария оболочки одновременно. Как я могу вызвать сценарий так, чтобы я мог сделать это еще два раза одновременно?

Спасибо.

ОБНОВЛЕНИЕ 1

Хочу оценить поступившие по этому вопросу. Следует уточнить, что я не могу вызвать все три script.sh команды из одного вызова. Это вызывается из трех независимых и идентичных точек в приложении.

Спасибо

1 Ответ

1 голос
/ 20 мая 2019

Параллельный GNU (https://www.gnu.org/software/parallel/) - это инструмент оболочки для параллельного выполнения заданий.

Для вашего примера что-то подобное должно работать:

seq -w 1 3 | parallel ./script.sh file{}.txt

Пожалуйста, посмотрите справочную страницу parallel и информацию на домашней странице gnu.org.

...