与gnu-parallel并行运行wine - 需要{%}插槽替换才能工作

时间:2015-09-21 23:28:59

标签: bash parallel-processing wine

我一直在使用gnu-parallel在ubuntu中并行运行wine / dos命令。我可以用简单的命令成功完成这项工作而没有问题。

然而,一些更复杂的问题可能导致葡萄酒中组分之间的干扰。

因此,为了解决这个问题,我想使用this question中查询的{%}将一个作业一次限制为特定的名为“wine prefix”的实例。问题是:{%}替代似乎不起作用。

我最终希望能够运行类似下面的内容

parallel -j4 'WINEPREFIX=$HOME/slot{%} wine cmd /c @echo {%} 2>/dev/null' ::: A B C D

不幸的是,创建并使用了一个新的葡萄酒前缀插槽{%},而不是现有的slot1,slot2,slot3和slot4前缀目录。

按照我试过的手册:

 parallel -j 2 echo {%} ::: A B C

但不是返回类似的内容:

1
2
1

它返回:

{%} A
{%} B
{%} C

所以我不认为问题是葡萄酒,而是其他问题:是否需要以某种方式启用{%}替换?也许它在我的版本中没有?也许我错误地复制了示例用法?我不能在任何地方找到这个问题的其他例子,但它每次都发生在我身上。

作为一种弱的解决方法,我一直在将bash模运算符应用于{#}作业替换,但这并不完美,因为我偶尔会遇到插槽冲突和次要崩溃。

FYI1:lsb_release -a返回

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:        14.04
Codename:       trusty

parallel --version返回

GNU parallel 20130922

1 个答案:

答案 0 :(得分:2)

parallel的版本似乎太旧了。

您是否在您的版本附带的文档中看到了{%},或者只是在线?

GNU Parallel 20140522的发行说明表明:

  
      
  • {%}作为职位空缺替换字符串引入。它已知错误。
  •   

以及GNU Parallel 20140622的发行说明表明:

  
      
  • {%}作为职位空缺。
  •