转录组分析时,经常需要批量处理样本,但是那种只是批量处理而非并行处理。曾老师提供了神奇并行处理脚本submit.sh

    1. #!/bin/bash
    2. # 命令由曾老师提供
    3. cat $1 | while read id
    4. do
    5. if ((i%$2==$3))
    6. then
    7. $id
    8. fi
    9. i=$((i+1))
    10. done
    11. # 最终执行代码为: for i in {0..3};do (nohup bash submit.sh script2.sh 4 $i 2>&1);done
    12. # 上面命令中的script2.sh是我们需要运行的命令
    13. # 在Linux的shell脚本中,行号是从0开始计数的。通过这种方式,我们将所有的命令分成了四份。而for in循环语句中的几个循环是并行的,也就代表这4个循环同时进行,即4份令>同时进行,每一份的上一条命令运行结束后,下一条命令才会执行。
    14. # 如果想要把命令分为10份并行只需要,改成for i in {0..9};do (nohup bash submit.sh script2.sh 10 $i 2>&1);done。保证前面{0..9}和后面10对应上。

    参考链接:https://mp.weixin.qq.com/s/NzcH5_DWcXUN2k7NF5czhw