我有一个脚本,需要运行一个jar并将其输出重定向到另一个可执行文件,并且需要使用一些不同的参数来运行它。我需要每次都单独运行它,因为它在执行时运行一些测试,并且我不希望它们受到其他正在运行的东西的影响。我的问题是,一旦第一个命令完成了其输出的输出,第二个命令应该继续运行(相当长的时间),但是控制权返回到Shell,并且该命令在后台继续运行。
该脚本的功能类似于:
java path.to.script param1 >(path/to/other/script param2 param3)
java path.to.script param4 >(path/to/other/script param5 param6)
但是第一行中的java命令完成后,它会直接进入下一行,导致path/to/other/script
同时执行两次。
更清楚地说,我希望仅在整个第一个命令行完成后,即path/to/other/script
完成其工作后,才显示提示。
我该怎么做?
答案 0 :(得分:2)
process substitution实际上将继续在后台运行,而不是在调用Shell的控制范围内。您可能只是想要
java path.to.script param1 | path/to/other/script param2 param3
java path.to.script param4 | path/to/other/script param5 param6