shell 脚本中的“第 3 行:意外标记附近的语法错误”

shell 脚本中的“第 3 行:意外标记附近的语法错误”

我尝试多次运行带有参数的可执行文件。我为此编写了一个脚本。但我总是收到错误,不知道如何修复它。

#!/bin/bash

export VCF_FILE='KI_subsetted.recode.vcf'
for i in $(seq 22) do; /home/lab/Desktop/vcftools_0.1.13/bin/vcftools --vcf $VCF_FILE --chr i --out ./by_chrs_komi/i --recode; done

我收到的错误是:

./chrs.sh: line 3: syntax error near unexpected token `/home/lab/Desktop/vcftools_0.1.13/bin/vcftools'
./chrs.sh: line 3: `for i in $(seq 22) do; /home/lab/Desktop/vcftools_0.1.13/bin/vcftools --vcf ./KI_subsetted.recode.vcf --chr i --out ./by_chrs_komi/i --recode; done'

我在 Ubuntu 15.10 上

答案1

尝试

for i in $(seq 22) ; do /home/aydar/Desktop/vcftools_0.1.13/bin/vcftools --vcf $VCF_FILE --chr $i --out ./by_chrs_komi/$i --recode; done
  • 分号(;)在 do 之前
  • 如果$i是数字,则不需要引号。

或者,编程风格,并根据建议

for i in {1..22}
do 
  /home/aydar/Desktop/vcftools_0.1.13/bin/vcftools \
    --vcf $VCF_FILE --chr $i --out ./by_chrs_komi/$i --recode
done

相关内容