运行多行同时bash
Run multiple lines at the same time bash
所以我正在集群中编写脚本,我需要 运行 这个:
convert_fastaqual_fastq.py -f ITS_C1-5_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C3-2_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C3-3_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C3-5_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C4-5_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C5-1_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C5-4_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C5-5_rRNA.fq -c fastq_q_to_fastaqual
如您所见,每条线都不一样,每条线大约需要 2 天才能 运行。
它所做的命令是将一个样本转换成两种不同的格式,但它是从一个样本到另一个样本进行的。
我想要的是,当我 运行 脚本时,所有样本 运行 同时,同时。
一个难看的解决方案是为每个样本生成一个文件,然后 运行 在集群中的不同 CPU 上一次生成一个文件。我想要同时并行完成一项工作 运行ning。
谢谢!
您可以像这样在后台启动每个作业,然后等待所有作业。模式 ITS_C?-?_rRNA.fq
将匹配您指定的每个作业。
i=0
for file in ITS_C?-?_rRNA.fq; do
convert_fastaqual_fastq.py \
-f "$file" -c fastq_q_to_fastaqual \
1>> job"$i".out \
2>> job"$i".err &
((i++))
done
wait
如果您想了解有关哪些作业失败的更多信息,您可以这样做而不是 wait
(请注意,这需要您跟踪哪个 pid 与哪个文件相关联)
for job in $(jobs -p); do
if wait "$job"; then
printf "job %s succeeded\n" "$job"
else
printf "job %s failed\n" "$job"
fi
done
所以我正在集群中编写脚本,我需要 运行 这个:
convert_fastaqual_fastq.py -f ITS_C1-5_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C3-2_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C3-3_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C3-5_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C4-5_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C5-1_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C5-4_rRNA.fq -c fastq_q_to_fastaqual
convert_fastaqual_fastq.py -f ITS_C5-5_rRNA.fq -c fastq_q_to_fastaqual
如您所见,每条线都不一样,每条线大约需要 2 天才能 运行。 它所做的命令是将一个样本转换成两种不同的格式,但它是从一个样本到另一个样本进行的。 我想要的是,当我 运行 脚本时,所有样本 运行 同时,同时。
一个难看的解决方案是为每个样本生成一个文件,然后 运行 在集群中的不同 CPU 上一次生成一个文件。我想要同时并行完成一项工作 运行ning。
谢谢!
您可以像这样在后台启动每个作业,然后等待所有作业。模式 ITS_C?-?_rRNA.fq
将匹配您指定的每个作业。
i=0
for file in ITS_C?-?_rRNA.fq; do
convert_fastaqual_fastq.py \
-f "$file" -c fastq_q_to_fastaqual \
1>> job"$i".out \
2>> job"$i".err &
((i++))
done
wait
如果您想了解有关哪些作业失败的更多信息,您可以这样做而不是 wait
(请注意,这需要您跟踪哪个 pid 与哪个文件相关联)
for job in $(jobs -p); do
if wait "$job"; then
printf "job %s succeeded\n" "$job"
else
printf "job %s failed\n" "$job"
fi
done