0

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

#!/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

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

4

1 回答 1

0

可能显而易见的是

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
于 2014-07-08T10:04:47.290 回答