У меня есть конвейер, где я отправляю несколько заданий, используя скрипт bash, который передает параметры в функцию Matlab.
bash-скрипт:
#!/bin/bash
reps=(1 2 3)
for rep in ${reps[@]}; do
qsub -v i=$rep my_pbs.pbs
done
PBS-скрипт:
#!/bin/bash -l
#PBS -l walltime=03:00:00,nodes=1:ppn=8,mem=32gb
#PBS -e jobname_${i}.err
#PBS -o jobname_${i}.out
cd $HOME
module load matlab
matlab -nodisplay -r "my_func('$i');exit"
Когда я передаю переменные из моего bash-скрипта в мой PBS-скрипт в мою функцию Matlab, значениев Matlab это пустой символьный массив вместо символа. Если я заменим i=$rep
в моем скрипте bash на rep=$rep
, значение будет передано в Matlab правильно. Почему это?