Ho uno script di shell foo.sh
che è un lavoro qsub con i contenuti:argomento passando script .sh
#!/bin/bash -l
#$ -S /bin/bash
#$ -N $2
echo $1
Vorrei passare due argomenti. Se chiamo qsub foo.sh a b il primo argomento viene elaborato correttamente ed echo sulla riga di comando come 'a'. Tuttavia, non so come passare un argomento nel secondo caso iniziando con "# $ -N". In questo caso $ 2 non viene valutato in 'b', ma in realtà '$ 2' è impostato. L'aiuto sarebbe molto apprezzato.
Penso che tu debba spiegare cosa intendi con '# $ -N $ 2'. Se il tuo script è uno script bourne shell, questo è un commento (inizia con '#') ma sembra che tu lo intenda come qualcos'altro. – Celada
Ho già provato a spiegarlo, vedi commento a Saptamus Prime. Questa opzione viene utilizzata per impostare il nome del lavoro in un ambiente cluster, ad es. vedere: http://www.clusterresources.com/torquedocs/commands/qsub.shtml. Vero, normalmente # viene utilizzato per i commenti. Ma non quando seguito quando usato nella sintassi # $ -Argument Value. Grazie. – user1137731
Se la domanda riguarda la metasintassi della shell specifica per qsub, dovresti averlo menzionato nella domanda. Ad ogni modo, il link che hai inviato parla di una direttiva '# PBS' ma non menziona' # $ ', quindi non so ancora cosa significhi. In ogni caso, sembra che le direttive 'qsub' siano interpretate da' qsub' stesso ** prima ** lo script viene eseguito, quindi avrebbe senso che gli argomenti passati allo script una volta eseguito non entrino nel trattamento di tali direttive. Penso che tu debba fornire una stringa statica per il nome del lavoro. – Celada