如何从另一个应用程序并行调用shell脚本

时间:2019-05-20 13:17:17

标签: bash shell ksh datastage

我正在使用Datastage,它使用main::IO() main=do argument<-getLine --how do i set initial state with argument? m >> f1 >> f2 >> f3 来调用参数化的Shell脚本。这个问题与数据阶段无关。关于如何调用外壳程序脚本。

现在,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`

我希望做的是同时调用所有三个shell脚本。如何以一种可以同时执行两次的方式调用脚本?

谢谢。

更新1

我想感谢这个问题上的来信。需要清除的一件事是,我无法从同一调用中调用所有三个/var/opt/scripts/Project/script.sh file1.txt 命令。这是从应用程序中的三个独立且相同的位置调用的。

谢谢

1 个答案:

答案 0 :(得分:0)

GNU并行(https://www.gnu.org/software/parallel/)是用于并行执行作业的Shell工具。

对于您的示例,这样的方法应该起作用:

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

请查看parallel的手册页及其gnu.org主页上的信息。