我有一个文件,例如file.txt:
Specie1
Specie2
Specie3
我有一个程序可以在这3个物种上运行,它叫做bedtools getfasta
所以我的主意是:
cat file_species.txt |
while read line; do
bedtools getfasta -fi /path/${line}/${line}.fa -bed /path/${line}/Recover_fasta.bed -s -fo /path/${line}/Fasta_loci_seq.fa" ;
done
如果我做echo
,我会得到:
bedtools getfasta -fi /path/Specie1/Specie1.fa -bed /path/Specie1/Recover_fasta.bed -s -fo /path/Specie1/Fasta_loci_seq.fa" ;
done
bedtools getfasta -fi /path/Specie2/Specie2.fa -bed /path/Specie1/Recover_fasta.bed -s -fo /path/Specie1/Fasta_loci_seq.fa" ;
done
bedtools getfasta -fi /path/Specie3/Specie3.fa -bed /path/Specie1/Recover_fasta.bed -s -fo /path/Specie1/Fasta_loci_seq.fa" ;
done
,如果我只是粘贴这些代码,它的工作原理如何,但是如何在"do"
之后的第一个脚本中执行它,而不执行回显然后粘贴代码?
答案 0 :(得分:0)
除去结尾的双引号和分号,然后将${line}
替换为"$line"
:
cat file_species.txt |
while read line; do
bedtools getfasta -fi /path/"$line"/"$line".fa -bed /path/"$line"/Recover_fasta.bed -s -fo /path/"$line"/Fasta_loci_seq.fa
done