如何在循环中使用参数范围来运行同一命令?

时间:2019-02-04 23:05:47

标签: python bash

我想在--CHROM标志后使用1到22之间的值来运行此命令,例如:

python eigenMT.py --CHROM 1  --QTL SG.cis.eqtls.txt --GEN SG.genotypes.txt --GENPOS SG.gen.positions.txt --PHEPOS SG.phe.positions.txt --OUT SG_Out.txt

我试图制作一个bash脚本,如下所示:

for i in {1..22}
do
        python eigenMT.py --CHROM $i  --QTL SG.cis.eqtls.txt --GEN SG.genotypes.txt --GENPOS SG.gen.positions.txt --PHEPOS SG.phe.positions.txt --OUT SG_Out.txt
done

但是我得到一个空的SG_Out.txt文件。

您能帮我如何在所有22个值上运行并将输出写到一个文件中吗?

我应该提到,如果我一个接一个地运行(无循环),它将起作用。

1 个答案:

答案 0 :(得分:0)

这可能可以完成您想要的操作,而无需创建临时文件

for i in {1..22}
do
        python eigenMT.py --CHROM $i  --QTL SG.cis.eqtls.txt --GEN SG.genotypes.txt --GENPOS SG.gen.positions.txt --PHEPOS SG.phe.positions.txt | tail -n +2
done > SG_Out.txt