2012-01-08 3 views
6

나는 내용으로 qsub 일이다 쉘 스크립트 foo.sh 있습니다. qsub foo.sh a b를 호출하면 첫 번째 인수가 올바르게 처리되고 'a'로 명령 행에 표시됩니다. 그러나 '# $ -N'으로 시작하는 두 번째 경우에는 인수를 전달하는 방법을 알지 못합니다. 이 경우 $ 2는 'b'로 평가되지 않지만 실제로 '$ 2'가 설정됩니다. 도움을 많이 주시면 감사하겠습니다.인수는

+0

당신이'# $ -N $ 2'의 의미를 설명 할 필요가 있다고 생각합니다. 스크립트가 bourne shell 스크립트라면 이것은 주석 ('#'으로 시작합니다)이지만 다른 것을 의미하는 것 같습니다. – Celada

+0

나는 이미 그것을 설명하려고 애썼다. Saptamus Prime에게 코멘트를 보아라. 이 옵션은 클러스터 환경에서 작업 이름을 설정하는 데 사용됩니다. http://www.clusterresources.com/torquedocs/commands/qsub.shtml을 참조하십시오. 사실, 주석에 #가 사용됩니다. 그러나 구문 # # -Argument Value에서 사용될 때 따라야 할 때가 아닙니다. 감사. – user1137731

+0

질문이 qsub에 특정한 셸 metasyntax에 관한 것이라면 질문에서 언급해야합니다. 어쨌든, 당신이 보내는 링크는'# PBS' 지시어에 대해서 말하고 있지만'# $'에 대해서는 전혀 언급하지 않았으므로 그 의미가 아직도 모르겠습니다. 어쨌든, 스크립트가 실행되기 전에'qsub' 지시어가'qsub' 자체에 의해 해석되는 것처럼 들리므로 실행 된 스크립트에 전달 된 인수는 입력되지 않습니다 그러한 지침의 처리에 나는 당신이 직업의 이름에 정적 문자열을 제공해야한다고 생각합니다. – Celada

답변

1

없음 당신이 할 수없는 메아리없는 모르겠어요. 줄의 시작 부분에 #가 있으면 $ 2가 스크립트에 대한 인수로 대체되지 않습니다. 당신이하려는 일을하는 방법은

qsub foo.sh -N <name> 
2

나를 위해 노력하십시오.

나는 -N 명령 의미하지만 sh foo.sh a b에 의해 호출

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

즉시

a 
b 
+0

답장을 보내 주셔서 감사합니다. 하지만 이미 echo 명령으로 전달하는 인수가 잘 작동한다고 언급했습니다. 그러나 두 번째 경우 '# $ -N $ 2'$ 2는 'b'로 평가되지 않습니다.상황을 알려주기 위해 : 이것은 Sun Grid Engine을위한 qsub 스크립트이고 '-N'옵션은 작업의 이름을 설정합니다. 따라서이 경우 작업은 '$ 2'로 설정되고 'b'와 같이 원하는대로 설정되지 않습니다. 그래서 일반적인 질문은 '# $ -SomeParameterOption'$ 2에 매개 변수를 전달하는 방법입니다. 고맙습니다. – user1137731