2012-10-18 9 views
7

Ich würde gerne Variablen mit dem Befehl "qsub -v" an ein csh-Skript übergeben. Ich verstehe, wir können die Parameter-Wert-Paare wie unten Liste,Wie verwende ich den Befehl qsub -v im PBS-Drehmoment?

qsub -v par1=value1 par2=value2 myScript.csh 

Wer weiß, ob die Werte dieser Parameter eine Zeichenfolge sein kann, um eine Liste von numerischen Zahlen durch Komma Zeichen oder einen Dateinamen getrennt? Ist beispielsweise der folgende Befehl möglich?

qsub -v par1='Cassie_score' par2=cassieFile.txt par3='100,200,300,' myScript.csh 

Vielen Dank,

Antwort

11

Sie müssen nur durch Kommas getrennt sein:

qsub -v var1="val1",var2=1,var3=val3 script.csh 

Für Ihr Beispiel, dass sein würde:

qsub -v par1='Cassie_score',par2=cassieFile.txt,par3='100,200,300,' myScript.csh 

beachten Sie nur, dass Dies würde cassieFile.txt nicht auf den Knoten verschieben, auf dem der Job ausgeführt wird, also müsste cassieFile.txt ein Pfad zu einem Speicherort auf einem sh sein ARD-Dateisystem.

+2

Wenn ich mich nicht irre, ist @dbeer die Person, die (im Prinzip) den Code schrieb, der diese Option in Drehmoment> = Version 4 analysiert. –

+1

Das ist richtig. – dbeer

+0

WOW ~ Cool ~ Vielen Dank. Es funktionierte gut mit einem kleinen Problem. Wenn ich par3 als '100,200,300' einstelle, kann myScript.csh nur den ersten Wert 100 erhalten. Ich nehme an, es ist das Trennzeichen. Gibt es eine Möglichkeit, sicherzustellen, dass die Variable par3 den Rest der Zeichenfolge erhält? (Die Zeichenfolge wird als Eingabeeinstellung für ein Modell verwendet, das remote ausgeführt wird, so dass die Kommatrennzeichen zwischen diesen 3 Werten nicht geändert werden können. Ich habe keine Kontrolle über das Format der Zeichenfolge.) Vielen Dank, – Cassie