我正在尝试从另一个文件中获取一个值,并在SLURM提交脚本中使用它。然而,我遇到了一个错误,提示该值不是数值类型,换句话说,该值没有被引用。
这是脚本:
#!/bin/bash
# This reads out the number of procs based on the decomposeParDict
numProcs=`awk '/numberOfSubdomains/ {print $2}' ./meshModel/decomposeParDict`
echo "NumProcs = $numProcs"
#SBATCH --job-name=SnappyHexMesh
#SBATCH --output=./logs/SnappyHexMesh.log
#
#SBATCH --ntasks=`$numProcs`
#SBATCH --time=240:00
#SBATCH --mem-per-cpu=4000
#First run blockMesh
blockMesh
#Now decompose the mesh
decomposePar
#Now run snappy in parallel
mpirun -np $numProcs snappyHexMesh -parallel -overwrite
当我将此脚本作为普通的Bash shell脚本运行时,它会正确地打印出进程数,并进行正确的 mpirun
调用。因此,awk
命令正确解析出进程数,变量也按预期进行了引用。
但是,当我使用以下方式将其提交到SLURM:
sbatch myScript.sh
我遇到了以下错误:
sbatch: error: Invalid numeric value "`$numProcs`" for number of tasks.
有人可以帮忙吗?
$(...)
。 - Avinash Raj