【发布时间】:2025-11-23 23:50:02
【问题描述】:
我们有一个用于切割适配器https://github.com/vsbuffalo/scythe/blob/master/README.md 的工具,我们希望它可以用于原始文件夹中的所有文件,并将每个文件分别输出为 OUT+文件名。
我写的这个脚本有问题,因为它没有单独处理每个文件,而且整个事情都不能正常工作。它会生成一个名为 OUT+files 的空文件
预期的操作会是这样的:
取file1,在上面使用scythe,将输出写为OUTfile1
获取文件2等
#!/bin/bash
FILES=/home/dave/raw/*
for f in $FILES
do
echo "Processing the $f file..."
/home/deve/scythe/scythe -a /home/dev/scythe/illumina_adapters.fa -o "OUT"+$f $f
done
此外,我注意到(测试单个文件)该脚本仅使用了 130 个可用内核中的一个。有什么办法可以改善吗?
【问题讨论】:
-
关于多线程,例如:
for i in $(seq 1 10) ; do sleep 10 & done ; wait更多,例如,这里:maketecheasier.com/run-bash-commands-background-linux -
除非你在谈论让你的 scythe 程序使用线程,否则我怀疑你想要 multiple processes,而不是 threads,因为 shell 对此一无所知线程。查看 GNU 并行。
标签: linux bash multithreading bioinformatics