I don't believe that is possible. The #SBATCH lines are comments to the shell, so it does not do any variable expansion there. To my knowledge, Slurm does not do any variable expansion in the parameters either.
If you really needed that sort of functionality, you would probably need to have something else pre-process the input submission script to produce the real submission script which is then passed to sbatch. E.g. something along the lines of cat - <<EOF > preprocess-sbatch #!/bin/bash SCRIPT="$1" shift sed -e "s/\$SCRATCH/$SCRATCH/g" < $SCRIPT | cat "$@" EOF On Thu, May 10, 2018 at 9:19 AM, Dmitri Chebotarov <dcheb...@gmu.edu> wrote: > Hello > > Is it possible to access environment variables in a submit script? > F.e. $SCRATCH is set to a path and I like to use $SCRATCH variable in > #SBATCH: > > #SBATCH --output=$SCRATCH/slurm/%j.out > #SBATCH --error=$SCRATCH/slurm/%j.err > > Since it's Bash script, # are ignored and I suspect these variables need > to be defined on Slurm controller (?). > > As a workaround I can run 'sbatch --output=$SCRATCH/slurm/%j.out > --error=$SCRATCH/slurm/%j.err <myscript>' and it works. But is there any > way to use non-slurm env variables via #SBATCH? > > Thank you > > -- Tom Payerle DIT-ACIGS/Mid-Atlantic Crossroads paye...@umd.edu 5825 University Research Park (301) 405-6135 University of Maryland College Park, MD 20740-3831