我有一个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}
如果这个方法行得通的话,它应该可以通过
doStuff
命令创建chr1
到chrM
的文件作为输出,但我什么也没有得到。并行执行没有发出错误,但没有输出。如果我不使用
parallel
,那么这个命令本身就可以正常工作,所以问题不在于命令,而在于我如何指定parallel
的参数。为了确认这一点,我尝试了以下操作:
parallel -S $hosts_string 'echo {1} {2} > {1}' ::: {$chrs_string} ::: {$inputFn}
如果这个可以工作,而
$inputFn
是(例如)/foo/bar
,那么我将得到(例如)一个名为chr1
的文件,其中包含字符串:chr1 /foo/bar
我该如何调整
parallel
命令,以便正确地循环遍历每个$chrs_string
和$inputFn
的组合?
'echo {1} {2}'
会显示$inputFn
的文本内容,而不是该文件的路径名。这不是正确的行为。 - Alex Reynolds