在shell脚本中使用多个for循环时出现语法错误

时间:2013-02-01 19:45:49

标签: syntax for-loop sh

我想在linux中执行以下练习。 Impute2是基于命令行的软件。我想使用for循环自动更改其选项,但它在**粗体**中抛出以下错误。

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

这意味着这里对于块34,int将是165752599到170752599(差值为5000001),而for 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:'**

意外令牌附近的语法错误

1 个答案:

答案 0 :(得分:1)

您有3个for个和3个done个但只有一个do。您需要更多do-do

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