强制 shell 脚本在进程替换后将命令保留在前台

Force shell script to keep command in foreground after process substitution

我有一个脚本需要 运行 一个 jar 并将其输出重定向到另一个可执行文件,我需要 运行 使用几个不同的参数。我每次都需要单独 运行 它,因为它 运行 对执行时间进行了一些测试,我不希望它们受到其他东西的影响 运行 宁。我的问题是,一旦第一个命令完成输出,第二个命令应该继续(相当长的时间),但是控制 returns 到 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 完成其工作后。

我该怎么做?

A 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