0

私は初心者の bash プログラマーで、SGE HPC クラスターで配列ジョブを送信するのに苦労しています。クラスターで R モジュールを使用して、作成したカスタム分析ルーチン ("CIfinal.rFunc") を実行しています。スクリプトは機能しますが、シェル スクリプトの作成に慣れていません。シェルスクリプトを書く私の試みは次のとおりです。

#!/bin/bash

#$ -S /bin/bash
#$ -V
#$ -cwd
#$ -j y
#$ -N R-job
#$ -t 1-6

source /apps1/modules/init/sh
module purge
module load R/intel/3.0.1

parameters=(1 2 3 4 5 6)

#n_parameters=${#parameters[@]}
#for((i=1; i<$n_parameters; i++)); do
#    echo ${parameters[i]}
#
#done

#exit

index=$(($SGE_TASK_ID - 1))

arg1=${parameters[$index]}

cd $HOME/rDAT

cat <<EOF | R --no-save -q 
load("CIfinal.rFunc")
CIfinal.rFunc($arg1, 1)
EOF

exit

このスクリプトはエラーを返します: line 26: parameters: bad array subscript This refer to the arg1=${parameters[$index]} 行

パラメータが関数に渡されていないように見えるので、ループ内の構文またはbashコマンドの1つ、またはその両方に何か問題があるに違いありません。

どんな助けでも大歓迎です。

ありがとうございました

4

0 に答える 0