我一直在使用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
答案 0 :(得分:2)
您parallel
的版本似乎太旧了。
您是否在您的版本附带的文档中看到了{%}
,或者只是在线?
GNU Parallel 20140522
的发行说明表明:
- {%}作为职位空缺替换字符串引入。它已知错误。
以及GNU Parallel 20140622
的发行说明表明:
- {%}作为职位空缺。