Argument übergeben .sh-Skripte

Habe ich ein shell-Skript foo.sh was ist ein qsub job mit Inhalt:

    #!/bin/bash -l
    #$ -S /bin/bash
    #$ -N $2
    echo $1

Möchte ich zwei Argumente. Wenn ich den Anruf qsub foo.sh a b das erste argument wird richtig bearbeitet und hallte in der Befehlszeile als 'eine'. Allerdings weiß ich nicht wie ich die übergabe eines Arguments im zweiten Fall beginnend mit '#$ -N". In diesem Fall $2 nicht ausgewertet 'b' aber eigentlich '$2' eingestellt ist. Hilfe wäre sehr geschätzt werden.

Ich glaube, Sie brauchen, um zu erklären, was du damit meinst #$ -N $2. Wenn Ihr Skript ist ein bourne-shell-Skript, dann ist dies ein Kommentar ist (es beginnt mit #), aber Sie scheinen zu bedeuten, es als etwas anderes.
Ich habe bereits versucht, es zu erklären, siehe Kommentar zu Saptamus Prime. Diese option wird verwendet, um den job-Namen in einem cluster-Umfeld, z.B. unter: clusterresources.com/torquedocs/commands/qsub.shtml. Stimmt, normalerweise # wird für Kommentare verwendet. Aber nicht, wenn gefolgt, wenn in der syntax #$ -Argument Wert. Danke.
Wenn die Frage betrifft shell metasyntax spezifischen qsub, Sie sollte erwähnt haben, dass in der Frage. Eh, der link, den du geschickt Gespräche über eine #PBS Richtlinie, aber es erwähnt nicht, dass #$ an alle, also ich weiß noch nicht, was das bedeutet. In jedem Fall klingt es wie die qsub Richtlinien interpretiert werden qsub selbst vor das script ausgeführt wird, also würde es Sinn machen, dass die Argumente, die an das Skript übergeben, sobald es ausgeführt wird nicht in die Verarbeitung solcher Richtlinien. Ich denke, man sollte liefern eine statische Zeichenfolge für den Namen des job.
Auch die Verwendung von -l in der shebang-Zeile des Skripts ist verdächtig. -l Kräfte eine login-shell, die normalerweise aufrufen /etc/profile Funktionalität für interaktive shells. Kein shell-script brauchen sollte.
Danke, Celada. Ich wusste nicht, dass dieses Verhalten ist spezifisch für qsub. Ich denke, ich weiß nicht, sh-Verhalten gut genug. Wenn ich passieren eine static string funktioniert es. Also sagen Sie angesichts des Verhaltens von qsub ich kann mich nicht übergeben, parameter an das Skript foo.sh aber ich habe zu hart-code die argument-Namen für qsub als statische strings?

InformationsquelleAutor user1137731 | 2012-01-08

Schreibe einen Kommentar