【发布时间】:2013-02-01 02:06:51
【问题描述】:
我有一个 C-shell 脚本,其中有一个名为 $hosts_string 的变量,形式为:
host1,host2,...,hostN
我还有一个名为$chrs_string 的变量,形式为:
chr1,chr2,...,chrM
我还有一个名为 $inputFn 的变量,它指定了我需要处理的文本文件。
我想做的是让每个主机对$chrs_string 的每个成员运行一个名为doStuff 的命令,将$inputFn 作为输入文件名参数。
我尝试了以下方法:
parallel -S $hosts_string 'doStuff {1} {2} > {1}' ::: {$chrs_string} ::: {$inputFn}
如果这可行,这应该创建文件chr1 到chrM 作为命令doStuff 的输出,但我什么也没得到。并行完成且未发出错误,但没有输出。
如果我不使用parallel,命令本身可以正常工作,所以不是命令,而是我如何为parallel 指定参数。
为了确认这一点,我尝试了以下方法:
parallel -S $hosts_string 'echo {1} {2} > {1}' ::: {$chrs_string} ::: {$inputFn}
如果 this 可以工作,并且$inputFn 是(例如)/foo/bar,那么我会(例如)获得一个名为 chr1 的文件,其中包含以下字符串:
chr1 /foo/bar
如何调整我的parallel 命令,以便它正确循环$chrs_string 和$inputFn 的每个组合?
【问题讨论】:
标签: parallel-processing csh gnu-parallel