【发布时间】:2021-12-27 12:15:44
【问题描述】:
我需要创建一个循环来增加 2 个变量(数值),一个根据另一个增加,并且都与我必须发送到集群的作业相关。
基本上我必须创建各种组,这些组由这两个变量定义;例如第一组从 1 到 10(1 是第一个变量,10 是第二个),第二组 11-20 等等......
我创建了 169 个组,因为我有 1690 个人,并且我正在为 Chromopainter 运行一个脚本 169 次(每个组一个)。
我想告诉我的脚本:
给定初始变量 1 和 10,执行脚本,为每个变量增加 10,然后再次执行脚本(循环)。 我知道要增加变量,我可以这样做:
for i in {0..159..10}
for j in {10..169..10}
但我无法将其应用于整个事物。这是我到目前为止写的:
for count in {1..169}
do
sbatch -J estimate.chr1 -o estimate.chr1.out -e estimate.chr1.error --wrap="module load ChromoPainter/2;
ChromoPainterv2 -g filename.chr1.phase -r fil.recombfile -t IDFILE_FORMAT.txt -o filename.chr1._ChPestimate.$count -a $i $j -i 15 -in -iM"
done
如果我想单独发送脚本,对于第一组,它的工作方式如下:
ChromoPainterv2 -g filename.chr1.phase -r fil.recombfile -t IDFILE_FORMAT.txt -o filename.chr1._ChPestimate.$count -a 1 10 -i 15 -in -iM
有什么想法吗?提前谢谢你
【问题讨论】:
-
1st group goes from 1 to 10 (1 would be the 1st variable, 10 the 2nd), the 2nd group 21-3011 到 20 会发生什么?我不明白。你能post你想生成的pairs个数吗?你想要配对(1,1),(1,2),(1,3),...(1,10),(2,11)(2,12)....(2,20),(3,21)...(3,30) etc.? -
是的,抱歉,这是分心的错误。第二组是 11 到 20
标签: bash loops variables counter script