1

我想在 linux 中执行以下练习。Impute2 是基于命令行的软件。我想使用 for-loops 自动更改其选项,但它会在 ** bold ** 中引发以下错误。

-int 选项是从 ** $int1 到 $int2 ** 对于每个 ** $chunk ** 的范围。

这意味着这里对于块 34,int 将从 165752599 到 170752599(差为 5000001),对于块 35,int 将是 170752600 到 175752600,依此类推,直到最后一个块,即块 49,它的 int 将从 240752614 到 245752614。

for chunk in $(seq 34 49)
for int1 in $(seq 165752599 5000001 240752614) 
for int2 in $(seq 170752599 5000001 245752614) 
do ./impute2 -use_prephased_g -m map.txt -h hap.txt -l legend.txt \
    -known_haps_g knownhap.txt -strand_g chr1_pos_strand_new \
    -align_by_maf_g -int $int1 $int2 -Ne 20000 -iter 30 -burnin 10 \
    -k 80 -k_hap 500 -os 0 1 2 3 -o result.out -o_gz -r result.summary \
    -i resul.info 
done
done
done

** bash:意外标记“for”附近的语法错误**

4

1 回答 1

1

你有 3 fors 和 3 dones 但只有一个do。你需要更多do-do

IE,for x in a; do for y in b; do for z ...

于 2013-02-01T19:58:41.053 回答