如何使用另一个带有循环的作业提交连续的bash作业

如何使用另一个带有循环的作业提交连续的bash作业,bash,loops,jobs,Bash,Loops,Jobs,我必须分阶段(使用shapeit软件)处理29条染色体,所以如果a可以发送一个作业给另一个,文件名是相同的,只更改染色体编号,那就太好了。 示例phase.sh #!/bin/bash shapeit \ -P chr_1.ped chr_1.map \ --duohmm \ --rho 0.01 \ -O chr_1.phased 我需要另一份工作叫它 #!/bin/bash for chr 1...29 sbatch --phase.sh done 非常感谢您的阶段脚本可以通过以下

我必须分阶段(使用shapeit软件)处理29条染色体,所以如果a可以发送一个作业给另一个,文件名是相同的,只更改染色体编号,那就太好了。 示例phase.sh

#!/bin/bash
shapeit \
-P chr_1.ped chr_1.map \
--duohmm \
--rho 0.01 \
-O chr_1.phased 
我需要另一份工作叫它

#!/bin/bash
for chr 1...29 
sbatch --phase.sh 
done

非常感谢

您的
阶段
脚本可以通过以下方式更改:

#!/bin/bash
shapeit \
-P $1.ped $1.map \
--duohmm \
--rho 0.01 \
-O $1.phased 
#!/bin/bash
for chr in $(seq 1 29)
do
phase.sh chr_$chr
done
你可以这样称呼它:

#!/bin/bash
shapeit \
-P $1.ped $1.map \
--duohmm \
--rho 0.01 \
-O $1.phased 
#!/bin/bash
for chr in $(seq 1 29)
do
phase.sh chr_$chr
done

您的
阶段
脚本可以通过以下方式更改:

#!/bin/bash
shapeit \
-P $1.ped $1.map \
--duohmm \
--rho 0.01 \
-O $1.phased 
#!/bin/bash
for chr in $(seq 1 29)
do
phase.sh chr_$chr
done
你可以这样称呼它:

#!/bin/bash
shapeit \
-P $1.ped $1.map \
--duohmm \
--rho 0.01 \
-O $1.phased 
#!/bin/bash
for chr in $(seq 1 29)
do
phase.sh chr_$chr
done

假设您可以将第一个脚本更改为

#/bin/bash
沙佩特\
-P“$1”。ped“$1”。地图\
--多姆\
--rho 0.01\
-O“$1”。分期付款
并将其称为
sbatch
(或者这是
phase.sh
?),然后可以使用

{1..29}中的chr的
;做
sbatch--phase.sh“chr_u$chr”
完成
当然,更好的设计可能是更改第一个脚本,在传递的参数上运行循环

chr的
;做
沙佩特\
-P“$chr”.ped“$chr”.map\
--多姆\
--rho 0.01\
-O“$chr”。分阶段
完成
然后像这样称呼它

thatscript chr{1..29}

假设您可以将第一个脚本更改为

#/bin/bash
沙佩特\
-P“$1”。ped“$1”。地图\
--多姆\
--rho 0.01\
-O“$1”。分期付款
并将其称为
sbatch
(或者这是
phase.sh
?),然后可以使用

{1..29}中的chr的
;做
sbatch--phase.sh“chr_u$chr”
完成
当然,更好的设计可能是更改第一个脚本,在传递的参数上运行循环

chr的
;做
沙佩特\
-P“$chr”.ped“$chr”.map\
--多姆\
--rho 0.01\
-O“$chr”。分阶段
完成
然后像这样称呼它

thatscript chr{1..29}

你能澄清脚本的哪一部分发生了变化吗?我不知道如何执行第二个bash作业(for…),在第一个bash作业中,我猜应该是类似于“chr_.ped chr_.map”的内容,而不是“chr_1.ped chr_1.map”,以指示它适用于所有染色体。非常感谢。你能澄清一下脚本的哪一部分发生了变化吗?我不知道如何执行第二个bash任务(for…),在第一个任务中,我想它应该是类似于“chr_.ped chr_.map”的东西,而不是“chr_1.ped chr_1.map”,以表明它适用于所有染色体。非常感谢。关于健壮性,另请参见@tripleee,这取决于,因为目前我们控制的变量引号过多。如果我们谈论可以在输出中获得额外空间的命令,或者带有特殊字符的文件名就可以了。我们有太多的答案,只是假设人们不会使用真实世界的文件名。修复它们通常比添加警告更容易,并教会人们正确使用引号。@tripleee,本讨论的方向是“提出好问题的艺术”:)关于稳健性,另请参见@tripleee,这取决于,因为目前我们控制的变量引号是多余的。如果我们谈论可以在输出中获得额外空间的命令,或者带有特殊字符的文件名就可以了。我们有太多的答案,只是假设人们不会使用真实世界的文件名。修正它们通常比添加警告更容易,并教会人们正确使用引用。@tripleee,本次讨论的方向是“提出好问题的艺术”: