【发布时间】:2019-05-20 13:17:16
【问题描述】:
我正在使用 Datastage,它使用 Command Executable Stage 来调用参数化的 Shell 脚本。这个问题与数据阶段无关。这是关于如何调用shell脚本的。
目前,datastage的逻辑是调用脚本3次,每次调用时使用不同的参数。例如:
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 命令。这是从应用程序中三个独立且相同的位置调用的。
谢谢
【问题讨论】:
-
您可能正在寻找等待命令 man7.org/linux/man-pages/man1/wait.1p.html 这将允许您从各种命令中收集进程 ID,然后等待它们全部完成。
-
您的问题绝对是关于数据阶段,以及如何从中调用进程。除非您想编写简单的包装脚本,您可以在其中编写
E=/var/opt/scripts/Project/script.sh; $E & $E & $E & wait; -
你试过
/var/opt/scripts/Project/script.sh file1.txt &吗?当您启动后台进程&3 次时,它将启动3 次。您应该了解如何处理关闭应用程序后仍在运行的临时文件、标准输出和脚本。 -
1.您是否必须考虑脚本运行失败并以非 0 值退出的可能性? 2. 最后一个脚本调用是否有一个文件名参数,可以从中确定它是最后一次运行(如
file3.txt中的3)? 3.可以修改script.sh吗?