2016-03-29 8 views
5

मैं slurm साथ काम प्रस्तुत करने के लिए निम्न स्क्रिप्ट है:Sbatch: इनपुट तर्क के रूप में पास काम नाम

#!/bin/sh 
#!/bin/bash 
#SBATCH -J $3 #job_name 
#SBATCH -n 1 #Number of processors 
#SBATCH -p CA 

nwchem $1 > $2 

पहला तर्क ($ 1) मेरी इनपुट, दूसरा ($ 2) मेरी उत्पादन होता है और मैं lik होगा तीसरा ($ 3) मेरा जॉबनाम बनें। अगर मुझे ऐसा लगता है, तो नौकरी का नाम '$ 3' है। मैं नौकरी नाम को स्क्रिप्ट के तर्क के रूप में कैसे दे सकता हूं?

धन्यवाद

उत्तर

5

SBATCH निर्देशों खोल द्वारा टिप्पणी के रूप में देखा जाता है और यह $3 पर चर प्रतिस्थापन प्रदर्शन नहीं करता।

विकल्प 1:: कार्रवाई के कई कोर्स हैं

sbatch -J thejobname submission_script.sh input.data output.res 

विकल्प 2:: कमांड लाइन पर -J तर्क पारित द्वारा स्थिति तर्कों ($1, $2, आदि की जगह stdin के माध्यम से स्क्रिप्ट पारित नामित लोगों)

IN=input.data OUT=output.res NAME=thejobname <submission_script.sh sbatch 

विकल्प 3: एक आवरण लिखना

#!/bin/bash 
sbatch <<EOT 
#!/bin/sh 
#SBATCH -J $3 #job_name 
#SBATCH -n 1 #Number of processors 
#SBATCH -p CA 

nwchem $1 > $2 
EOT 

और इस तरह इसका इस्तेमाल:

submit.sh input.data output.red thejobname 

भी ध्यान रखें कि दूसरे कुटिया (#!/bin/bash) बेकार और (पैरेंट) खोल द्वारा नजरअंदाज कर दिया है।

संबंधित मुद्दे