【问题标题】:How to loop over a parameter list and submit jobs?如何遍历参数列表并提交作业?
【发布时间】:2014-07-08 09:56:01
【问题描述】:

我有一个有输入的作业,我想在提交作业时循环遍历参数列表。这是我的脚本的一部分:

#!/bin/bash
errors=$HOME/ERRORS/convergence/GvsE/B_2/error.log
count=`qstat | wc -l`
gi=( "0" "0.25" "0.5" "1" "2" )
Ener=( "1" "2" "5" "10" "20" "21" "22" "23" "24" "25" )

for ((i=0; i < ${#g[@]}; i++)); do
        for ((j=0; j < ${#E[@]}; j++)); do
                qsub -o $errors -e $errors -v E=${#Ener[$j]},slices=${200},modes=${60},g=${#gi[$i]} job_convcheck.sh
                count=`expr $count + 1`
                while [ $count -gt 4950 ]
                do
                  sleep 420
                  count=`qstat | wc -l`
                done
        done
done

当我运行它时,我既没有得到答案也没有得到结果。这有什么问题?

【问题讨论】:

标签: bash qsub do-loops


【解决方案1】:

可能是显而易见的

for ((i=0; i < ${#g[@]}; i++)); do

应该是

for ((i=0; i < ${#gi[@]}; i++)); do

for ((j=0; j < ${#E[@]}; j++)); do

应该是

for ((j=0; j < ${#Ener[@]}; j++)); do

或者,如果您想要索引,只需执行以下操作:

for i in "${!gi[@]}"; do
    for j in "${!Ener[@]}"; do

【讨论】:

    猜你喜欢
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 2012-08-15
    相关资源
    最近更新 更多