Todo o processamento feito pelo SLURM (por sbatch , especificamente) é feito antes do bash invocado, então o bash não vai te ajudar aqui. O script poderia estar em qualquer idioma, não importaria: os #SBATCH são apenas coincidentemente comentários bash, o que importa é que eles são sbatch diretivas.
As opções podem ser especificadas no arquivo para fornecer uma maneira conveniente de sempre usar os mesmos parâmetros para um script específico. Se você quiser usar opções diferentes, passe-as na linha de comando de sbatch . Você pode escrever um script de wrapper que execute sbatch se desejar criar opções a partir de determinados parâmetros específicos. Você pode passar o script de trabalho como entrada padrão (um documento aqui é conveniente) em vez de mantê-lo em um arquivo separado se você preferir.
#!/bin/sh
sbatch --time=5:00:00 --ntasks="$1" --mem-per-cpu=1024M <<'EOF'
#!/bin/sh
MyProgram.exe
EOF