最后 运行 具有不同的选项 GNU Parallel

Last run with different options GNU Parallel

我使用 GNU Parallel 在 bash 中并行化了一个 for 循环。 这是一个非常简单的例子来展示我想要达到的目标:

seq 10 | parallel -n0 echo "Hello World" &

我想从终端分离所有 运行,除了最后一个,因此只在最后一个循环中删除 &。 有办法吗?

编辑: 由于我不是很清楚,我会尝试以更好的方式解释自己:

我有一个模拟器启动,然后使用 GNU parallel 我多次启动与模拟器连接的相同脚本。除了最后一个,我希望所有这些都与终端分离,以避免与重叠输出混淆。

没有选项,但默认情况下第一个作业将 /dev/tty 作为输入。那么也许你可以先运行你的上一份工作?

如果您只想要输出而不是输入,那么这应该可行:

seq 10 | parallel echo Hello World '> {= $_= $job->seq() == total_jobs() ? "/dev/tty" : "/dev/null" =}'

(需要版本 20160122 或更高版本)

否则,解决方法是保存到文件并输出最后一个文件:

seq 10 | parallel --files -n0 echo Hello World | tail -n1 | parallel -u cat