Bash 如何从另一个应用程序并行多次调用shell脚本
我正在使用Datastage,它使用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 -
命令可执行阶段
调用参数化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
?