Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何从另一个应用程序并行多次调用shell脚本_Bash_Shell_Ksh_Datastage - Fatal编程技术网

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

Bash 如何从另一个应用程序并行多次调用shell脚本,bash,shell,ksh,datastage,Bash,Shell,Ksh,Datastage,我正在使用Datastage,它使用命令可执行阶段调用参数化Shell脚本。这个问题与datastage无关。它是关于如何调用shell脚本的 现在,datastage的逻辑是在每次调用脚本时使用不同的参数调用脚本三次。例如: Call script.sh file1.txt -> Wait for `exit 0` -> call script.sh file2.txt -> Wait for `exit 0` -> call script.sh file3.txt -

我正在使用Datastage,它使用
命令可执行阶段
调用参数化Shell脚本。这个问题与datastage无关。它是关于如何调用shell脚本的

现在,datastage的逻辑是在每次调用脚本时使用不同的参数调用脚本三次。例如:

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
我希望能同时调用所有三个shell脚本。如何以允许我同时执行两次以上的方式调用脚本

谢谢

更新1 我想感谢你对这个问题的回答。需要澄清的是,我不能从同一个调用中调用所有三个
script.sh
命令。这是从应用程序中三个独立且相同的位置调用的

谢谢,gnupallel()是一个并行执行作业的shell工具

在您的示例中,类似的方法应该有效:

seq-w13 | parallel./script.sh文件{}.txt


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

您可能正在寻找wait命令这将允许您从各种命令中收集进程ID,然后等待它们全部完成。您的问题绝对是关于datastage,以及如何从中调用进程。除非您想编写简单的包装器脚本,在其中编写
E=/var/opt/scripts/Project/script.sh$E&$E&$E&wait
您是否尝试过
/var/opt/scripts/Project/script.sh file1.txt&
?当您启动后台进程三次时,它将启动三次。您应该了解如何处理关闭应用程序后仍在运行的临时文件、标准输出和脚本。1。您是否必须考虑脚本运行失败并以非0值退出的可能性?2.最后一个脚本调用是否有一个文件名参数,从该参数可以确定它是最后一次运行(如
file3.txt
中的
3
)?3.您可以修改
script.sh