我有一个有输入的作业,我想在提交作业时循环参数列表。这是我的脚本的一部分:
#!/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
当我跑步时,我既不会得到答案也不会得到结果。这有什么问题?
答案 0 :(得分: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