最后运行GNU Parallel的不同选项

时间:2016-02-08 11:18:19

标签: linux bash parallel-processing gnu-parallel

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

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

我想从终端分离所有的跑步,除了最后一个,因此删除&只在最后一个周期。 有没有办法做到这一点?

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

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

1 个答案:

答案 0 :(得分:1)

没有选项,但默认是第一个作业将/ dev / tty作为输入。那么也许你可以先完成上一份工作?

如果您只想输出而不是输入,那么这应该有效:

var obj = {};

for (var i = 0; i < node.length; i++) {
    var new_node = node[i];
  console.log(new_node);
  if (typeof obj[new_node.node_from] === 'undefined') {
    obj[new_node.node_from] = 0;
  }
  for (var j = 0; j < new_node.children.length; j++) {
    if (typeof obj[new_node.children[j].node_to] !== 'undefined') {
        obj[new_node.children[j].node_to]++;
    }
  }
}
console.log(obj);

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

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

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