不知何故,我无法将变量从 Slurm 作业脚本传递到 Bash。我以为它以前有效,但我找不到错误。
Slurm脚本运行如下:
#!/bin/bash
#
#SBATCH -A node
... (MORE SLURM OPTIONS)
HABITAT=trocken
PRJDIR=/home/poppman/rca/prj
PATCHDIR=/home/poppman/rca/dat/pat
RESDIR=/home/poppman/rca/dat/res
GRAPHAB=/home/poppman/rca/opt/graphab-2.8.jar
MAXEUC=1500
MAXRES=250000
METRIC=PC
srun /home/poppman/rca/base_graphs_p.sh -p $PROJNAME -t $HABITAT -e $MAXEUC -r $MAXRES -m $METRIC -i ${SLURM_ARRAY_TASK_ID} -d "false"
它运行的 bash 脚本以以下内容开头:
#!/bin/bash
#
while getopts p:t:e:r:m:i:d: options
do
case "${options}" in
p) PROJNAME=${OPTARG} ;;
t) HABITAT=${OPTARG} ;;
e) MAXEUC=${OPTARG} ;;
r) MAXRES=${OPTARG} ;;
m) METRIC=${OPTARG} ;;
i) JOBID=${OPTARG} ;;
d) EUCLID=${OPTARG} ;;
esac
done
但不知何故变量不包含任何值。我还尝试引用
":p:t:e:r:m:i:d:"
和其他小更改,但变量仍然为空。这是什么问题?
没关系。我刚刚发现我没有分配要作为参数传递的第一个变量。不知怎的,这会导致整个事情失败。