我使用GNU Parallel在bash中并行化了一个for循环。 这是一个非常简单的示例,用于显示我想要达到的目标:
seq 10 | parallel -n0 echo "Hello World" &
我想从终端分离所有的跑步,除了最后一个,因此删除&只在最后一个周期。 有没有办法做到这一点?
编辑: 由于我不是很清楚,我会尝试以更好的方式解释自己:
我有一个模拟器启动,然后使用GNU并行我多次启动与模拟器连接的相同脚本。我希望所有这些都从终端分离,除了最后一个,以避免与重叠输出混淆。
答案 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" =}'