1

由于我使用的集群中的资源限制,我在bash中使用for循环提交了一堆作业。我想在下一个命令之前等待 pbs 中的所有作业完成。这里的链接似乎解决了我的问题等待一组 qsub 作业完成 ,但如果我没有下一个作业脚本要运行但一些简单的 bash 命令,我仍然很困惑我应该在 -cwd 之后放置什么

这是for循环提交pbs任务

for i in `seq 1 10`; do
if [ "$i"==10 ]; then
    EndLine=$((SeqNum*2))
fi
EndLine=$((StartLine-1+(EachFile+1)*2));
NewFile='StHeBC2-'$i'.fasta'
sed -n "$StartLine,$EndLine p" StHeBC2.fasta > $NewFile
StartLine=$((EndLine+1))
JobFile='StHeBC2-'$i'.sh'

    echo "
    #!/bin/bash
    #PBS -l ncpus=8
    #PBS -l mem=8GB
    #PBS -l nodes=4
    #PBS -l walltime=120:00:00
    #PBS -m bea
    #PBS -W umask=33

    cd $PBS_O_WORKDIR
    TransDecoder -t $NewFile -m 15 --search_pfam Pfam-A.hmm --API --CPU 8
    " > $JobFile

    qsub $JobFile
done

在所有 JobFiles 在 pbs 中完成之后,我想使用一些基本命令 cat/cut 等来总结 TransDecoder 的输出,比如

cat test-*.fasta.transdecoder.pep > test.fasta.transdecoder.pep

任何人都可以帮忙吗?谢谢

4

0 回答 0