Bash для l oop останавливается после первой итерации - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть следующий bash код. Значение for l oop принимает значения из двух последовательных расположений массива. Затем он создает соответствующий каталог в кластере. Там он создает файл .cpki и запускает его в кластере. К сожалению, этот код перестает работать после первой итерации.

declare -a CT
CT=(2 0 -1 -2)
len=${#CT[@]}

for ((i=0;i<len;i++)); do
    a=${CT[$i]}
    b=${CT[$((i+1))]}
    input=${job_type}_${a}_${b}

    WorkDir=/scratch/$USER/${input}.${JOB_ID} #Directory in a cluster
    mkdir -p $WorkDir;
    cd $WorkDir;      #Go to cluster 
    ...
    Code that creates ${filename}.cpki file using a and b
    ...

    $MPIRUN -np $NSLOTS $CP2K -i "${filename}.cpki"> "${filename}.cpko"

done

1 Ответ

0 голосов
/ 18 апреля 2020

Убедитесь, что переменная len непреднамеренно изменена в коде

, который создает файл $ {filename} .cpki с использованием a и b

* 1008. * часть сценария.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...