Mam skrypt foo.sh
który jest qsub zadanie z treścią:Argument przechodząc w skryptach SH
#!/bin/bash -l
#$ -S /bin/bash
#$ -N $2
echo $1
chciałbym przekazać dwa argumenty. Jeśli zadzwonię do qsub foo.sh, a b, pierwszy argument zostanie poprawnie przetworzony i wyświetlony w wierszu poleceń jako "a". Jednak nie wiem, jak przekazać argument w drugim przypadku zaczynającym się od "# $ -N". W tym przypadku 2 USD nie zostanie ocenione jako "b", ale faktycznie ustawione jest "2 USD". Pomoc będzie bardzo mile widziane.
Myślę, że musisz wyjaśnić, co masz na myśli przez '# $ -N $ 2'. Jeśli twój skrypt jest skryptem powłoki bourne, to jest to komentarz (zaczyna się od '# '), ale wydaje się, że jest to coś innego. – Celada
Już próbowałem to wyjaśnić, zobacz komentarz do Saptamus Prime. Ta opcja służy do ustawiania nazwy zadania w środowisku klastra, np. patrz: http://www.clusterresources.com/torquedocs/commands/qsub.shtml. Prawda, zwykle # służy do komentowania. Ale nie wtedy, gdy następuje po użyciu w składni # $ -Argument Value. Dzięki. – user1137731
Jeśli pytanie dotyczy powłoki metasyntax właściwej dla qsub, powinieneś o tym wspomnieć w pytaniu. W każdym razie link, który wysłałeś, mówi o dyrektywie "# PBS", ale w ogóle nie wspomina o "# $", więc nadal nie wiem, co to znaczy. W każdym razie brzmi to tak, jakby te "qsub" dyrektywy były interpretowane przez 'qsub' sam ** przed ** skrypt jest uruchamiany, więc byłoby sensowne, że argumenty, które są przekazywane do skryptu po wykonaniu, nie wchodzą w przetwarzanie takich dyrektyw. Myślę, że powinieneś dostarczyć statyczny ciąg znaków dla nazwy pracy. – Celada