i'm trying use integer variables within bash script submitting sun grid engine (using qsub). can clarify why not work?
numcores=32
#$ -pe mpi $numcores
(gives error "unable read script file because of error: numerical value invalid! initial portion of string "$numcores" contains no decimal number)
but does:
#$ -pe mpi 32
i've looked @ solutions involve awk or bc can't seem make them work. new bash scripting - help!
the character #
in bash script signals comments. hence, in line #$ -pe mpi $numcores
, value of environement variable numcores
not used, since comment.
yet, these comments useful pass parameters qsub
command. see the man page , these examples instance. notice these parameters can passed on command line:
qsub -pe mpi 32 myjob.sh
the alternative use command before qsub generate job. let's imagine job script jobgeneric.sh
is:
#!/bin/bash #$ -n useless #$ -cwd #$ -pe mpi $numcores #$ -l h_vmem=6g echo 42
let's use sed
command substitute environment variable , create new file job.sh
:
export numcores=32 sed 's/$numcores/'$numcores'/g' jobgeneric.sh > job.sh cat job.sh
see environment variable substitution in sed . result is:
#!/bin/bash #$ -n useless #$ -cwd #$ -pe mpi 32 #$ -l h_vmem=6g echo 42
now job can submitted using qsub job.sh
!
Comments
Post a Comment