"linha 3: erro de sintaxe próximo ao token inesperado" em um script de shell

"linha 3: erro de sintaxe próximo ao token inesperado" em um script de shell

Estou tentando executar algum executável com parâmetros várias vezes. Eu escrevi um roteiro para isso. Mas sempre recebo um erro e não consigo descobrir como corrigi-lo.

#!/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

O erro que estou recebendo é:

./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'

Estou no Ubuntu 15.10

Responder1

tentar

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
  • ponto e vírgula ( ;)antes de fazer
  • se $ifor um número, não há necessidade de aspas.

ou, estilo de programação e conforme sugestão

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

informação relacionada