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