我有一个如下所示的 bash 脚本。首先,它将sorted.bam 文件作为输入,并使用“stringtie”工具将每个样本gtf 作为输出。然后每个样本 gtf 的路径将被赋予到 mergelist.txt 中。然后对它们使用“stringtie merge”以获得“stringtie_merged.gtf”。
我总共有 40 个排序的.bam 文件。
for sample in /path/*.sorted.bam
do
dir="/pathto/hisat2_output"
dir2="/pathto/folder"
base=`basename $sample '.sorted.bam'`
"stringtie -p 8 -G gencode.v27.primary_assembly.annotation_nochr.gtf -o ${dir2}/stringtie_output/${base}/${base}_GRCh38.gtf -l ${dir2}/stringtie_output/${base}/${base} ${dir}/${base}.sorted.bam; ls ${dir2}/stringtie_output/*/*_GRCh38.gtf > mergelist.txt; stringtie --merge -p 8 -G gencode.v27.primary_assembly.annotation_nochr.gtf -o ${dir2}/stringtie_output/stringtie_merged.gtf mergelist.txt"
done
我用分隔命令;
在所有排序的.bam 文件上运行脚本并完成作业后,我发现 mergelist.txt 仅具有 33 个示例 gtf 的路径。这意味着 merge list.txt 中缺少其他 7 个示例 gtfs 的路径。
将命令与分隔开;
正确的一种还是有其他方法?
该脚本应首先使用一个命令,并在文本文件中给出输出路径,然后使用另一个命令。
您没有用分号分隔命令;您调用了一个嵌入了分号的命令。考虑简单的脚本:
"ls; pwd"
这个脚本的作用是not call ls
其次是pwd
。相反,shell 将搜索 PATH 来查找名为的文件ls; pwd
(即名称中带有分号和空格的文件),可能找不到该文件并以错误消息响应。您需要删除双引号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)