我有一堆.sra文件,我想使用SRAtools的fastq-dump转换成.fastq格式。它们都存储在同一个目录中,因此我非常希望运行一个bash脚本来循环遍历它们并使用各种方法应用fastq-dump函数。但是,我无法正确理解语法。
#!/bin/bash
FILES=/home/sam/Documents/Reads
for file in FILES
do
[ fastq-dump "$file" ]
done
这引发了一元运算符的预期'。我确信它相当简单,但我在Bash脚本编写方面有点初学者,并且不太确定语法是如何工作的。
有人能给我一个关于正确语法的提示吗?
答案 0 :(得分:3)
摆脱方括号。并将FILES
更改为"$FILES"/*
,以便扩展变量值并匹配该目录中的文件。
#!/bin/bash
FILES=/home/sam/Documents/Reads
for file in "$FILES"/*
do
fastq-dump "$file"
done
实际上,循环并不是必需的。 fastq-dump
可以使用多个文件名。你可以简单地写一下:
fastq-dump /home/sam/Documents/Reads/*