के भीतर बैश वैरिएबल का उपयोग करें, मैं किसी अन्य फ़ाइल से एक मान प्राप्त करने का प्रयास कर रहा हूं और इसे SLURM सबमिशन स्क्रिप्ट के भीतर उपयोग कर रहा हूं। हालांकि, मुझे एक त्रुटि मिलती है कि मान गैर-संख्यात्मक है, दूसरे शब्दों में, इसे संदर्भित नहीं किया जा रहा है।SLURM sbatch स्क्रिप्ट
#!/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
जब मैं यह एक सामान्य बैश खोल स्क्रिप्ट के रूप में चलाने के लिए, इसे बाहर procs की संख्या सही ढंग से प्रिंट और सही mpirun
कॉल करता है:
यहाँ स्क्रिप्ट है। इस प्रकार awk
कमांड procs की संख्या को सही ढंग से पार करता है और चर के रूप में चर के रूप में संदर्भित किया जाता है।
हालांकि, जब मैं का उपयोग कर SLURM को यह सबमिट करें:
sbatch: error: Invalid numeric value "`$numProcs`" for number of tasks.
किसी को भी इस के साथ मदद कर सकते हैं:
sbatch myScript.sh
मैं त्रुटि मिलती है?
किसी स्क्रिप्ट के अंदर बैकटिक्स का उपयोग न करें। '$ (...)' –