1
我有一个称为形式的$hosts_string
变量C-shell脚本:GNU并行使用两个参数
host1,host2,...,hostN
我也有一个变量被称为形式的$chrs_string
:
chr1,chr2,...,chrM
我也有一个名为$inputFn
的变量,它指定了我需要处理的文本文件。
我想要做的是让每个主机在$chrs_string
的每个成员上运行一个名为doStuff
的命令,将$inputFn
作为输入文件名参数。
我试过如下:
parallel -S $hosts_string 'doStuff {1} {2} > {1}' ::: {$chrs_string} ::: {$inputFn}
如果一切正常,应通过chrM
创建文件chr1
从命令doStuff
输出,但我什么也没得到。并行完成时不发出错误,但没有输出。
如果我不使用parallel
,命令本身可以正常工作,所以它不是命令,但我如何指定parallel
的参数。
为了证实这一点,我试过如下:
parallel -S $hosts_string 'echo {1} {2} > {1}' ::: {$chrs_string} ::: {$inputFn}
如果这是工作,并$inputFn
是(例如)/foo/bar
,那么我会得到(例如)一个名为chr1
,包含字符串:
chr1 /foo/bar
如何调整我的parallel
命令,使其遍历的$chrs_string
和每个组合正确吗?
这是行不通的。简单地尝试'echo {1} {2}'显示'$ inputFn'的文本内容,而不是该文件的路径名。这是不正确的行为。 – 2013-02-16 10:26:58
然后,我不清楚你想要什么。我编辑了我的答案,以提供更多的想法。如果这不能回答你的问题,请发布'parallel --version'的输出,输入和期望的输出。 – 2013-02-16 13:46:12
和您希望运行的命令。 – 2013-02-16 13:59:46