【问题标题】:Run wine in parallel with gnu-parallel - needs {%} slot substitution to work与 gnu-parallel 并行运行 wine - 需要 {%} 插槽替换才能工作
【发布时间】:2015-12-18 19:04:17
【问题描述】:

我一直在使用 gnu-parallel 在 ubuntu 中并行运行 wine/dos 命令。我可以并且已经通过简单的命令成功地完成了这项工作。

但是,一些更复杂的问题可能会导致葡萄酒中的成分相互干扰。

因此,为了解决这个问题,我想使用在this question 中查询的 {%} 一次将一项工作限制为特定命名的“葡萄酒前缀”实例。问题是:{%} 替换似乎不起作用。

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

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

不幸的是,创建并使用了一个新的 wine 前缀 slot{%},而不是现存的 slot1、slot2、slot3 和 slot4 前缀目录。

按照我试过的手册:

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

但不是返回类似:

1
2
1

它返回:

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

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

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

仅供参考:lsb_release -a 返回

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

parallel --version返回

GNU parallel 20130922

【问题讨论】:

    标签: bash parallel-processing wine


    【解决方案1】:

    您的parallel 版本似乎太旧了。

    您是否在随您的版本附带的文档中或仅在线看到 {%}

    GNU Parallel 20140522 的发行说明指出:

    • {%} 作为作业槽替换字符串引入。它有已知的错误。

    GNU Parallel 20140622 的发行说明指出:

    • {%} 用作作业槽。

    【讨论】:

    • 是的,可信仓库中的版本太旧了
    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多