我是一名 bash 程序员新手,在 SGE HPC 集群上提交数组作业时遇到了一些困难。我在集群上使用 R 模块来运行我编写的自定义分析例程(“CIfinal.rFunc”)。该脚本是功能性的,但我不熟悉编写 shell 脚本。这是我编写 shell 脚本的尝试:
#!/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
此脚本返回错误:第 26 行:参数:错误的数组下标这指的是 arg1=${parameters[$index]} 行
在我看来,参数没有被传递给函数,因此循环中的语法或bash命令之一或两者都必须有一些东西。
任何帮助将不胜感激。
谢谢