Linux 上次使用不同选项运行GNU并行

Linux 上次使用不同选项运行GNU并行,linux,bash,parallel-processing,gnu-parallel,Linux,Bash,Parallel Processing,Gnu Parallel,我已经在bash中使用GNU并行化了for循环。 这是一个非常简单的示例,展示了我想要达到的目标: seq 10 | parallel -n0 echo "Hello World" & 我想从终端分离所有的运行,除了最后一个,这样就只在最后一个循环中删除&了。 有办法做到这一点吗 编辑: 由于我不是很清楚,我将尝试以更好的方式解释自己: 我启动了一个模拟器,然后使用GNU并行,我多次启动与模拟器连接的相同脚本。我希望除最后一个外,所有作业都与终端分离,以避免与重叠输出混淆。没有选项,但

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

seq 10 | parallel -n0 echo "Hello World" &
我想从终端分离所有的运行,除了最后一个,这样就只在最后一个循环中删除&了。 有办法做到这一点吗

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


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

没有选项,但默认情况下,第一个作业将/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

你为什么要在结尾加上
&
?为什么不直接移除它?因为我需要第一次从中分离terminal@gabrielesani你知道并行意味着什么吗?是的,但是由于GNU并行有很多选择,你可以使用循环参数等等,我想知道是否有办法达到这个结果。你的问题不是很清楚——你想做什么?GNUparallel有效地将所有内容作为分叉进程运行,因此它们不会与终端交互以进行输入。你能给出一个更好的例子而不是呼应“Hello World”来展示你想要实现的目标吗?非常感谢!安装了新版本的parallel(我有一个Ubuntu版本,20141022,没有注意到它太旧了:D),第一个版本工作起来很有魅力。谢谢。