2016-07-13 5 views
0

Ich bin nicht sicher, was das Problem mit meinem Slurm-Skript ist - die Fehlermeldungen, die ich erhalte, sind mehrdeutige Umleitung für meine $ Eingabe und Befehl nicht gefunden, wenn ich versuche, meine Variablen zu definieren .Slurm - mehrdeutige Umleitung

#!/bin/bash 
#SBATCH --job-name=gim 
#SBATCH --time=24:00:00 
#SBATCH --ntasks=20 
#SBATCH --ntasks-per-node=2 
#SBATCH --cpus-per-task=1 
#SBATCH -o output_%A_%a.out #Standard Output 
#SBATCH -e output_%A_%a.err #Standard Error 

module load program 

input= gim${SLURM_ARRAY_TASK_ID}.gjf 
output= gim${SLURM_ARRAY_TASK_ID}.log 

program $input > $output 

So wie ich es laufen soll:

sbatch --array=1-500 ./slurm.job 
+0

'input = foo' läuft' foo' als Befehl mit 'input', der als Umgebungsvariable mit einem leeren Wert für die Dauer dieser einzelnen Ausführung gesetzt wird. –

Antwort

2

Leer Angelegenheiten:

#!/bin/bash 
# ...etc... 

input=gim${SLURM_ARRAY_TASK_ID}.gjf 
output=gim${SLURM_ARRAY_TASK_ID}.log 

program "$input" > "$output" 

Hinweis das Fehlen von Räumen die = Zeichen für die Zuweisungen umgibt. Whitespace ist wichtig:

+0

danke, eine andere Lektion gelernt :) – EA00

+1

BTW, eine Gewohnheit der Verwendung von http://shellcheck.net/ (auch ein installierbares Tool), die diese Klasse von Fehler (und andere) automatisch identifizieren wird. –