2014-11-07 2 views
0

PBS 환경에서 qsub 작업 스크립트를 통해 배열을 변수 목록으로 전달하는 방법은 무엇입니까? 예를 들어qsub 스크립트에 배열 전달

:

job_script.bash 배열 변수를 array1array2을 갖는다
arr1=(1 2 3); arr2(a b c); qsub -v array1=("${arr1[@]}"), array2=("$arr2[@]") job_script.bash 

.

내가 오류 다음 얻을 내 작업을 제출하려면 위의 명령을 실행하려고 :

-bash: syntax error near unexpected token `(' 

가 내 구문에 뭔가를 놓치고 있습니까?

위와 같이 배열을 전달하는 것과 관련하여 도움을 얻을 수있는 포럼을 찾지 못했습니다.

위의 상황을 도와 줄 사람이 있습니까?

+0

는 qsub를하고 PBS 설명 ... 쉘에 제대로 arr2 변수를 생성하지 않았다. – ceving

+0

qsub는 그리드 컴퓨팅 환경의 클러스터에서 작업을 제출하는 명령입니다. http://docs.adaptivecomputing.com/torque/4-1-4/Content/topics/commands/qsub.htm PBS는 그리드 컴퓨팅 소프트웨어입니다 컴퓨팅 클러스터에 작업을 제출할 플랫폼을 제공하고 실행합니다. http://www.pbsworks.com/Product.aspx?id=26 –

+0

여기에 평신도 용어로 PBS를 설명하는 Wikipedia 링크가 있습니다. http : // /new.wikipedia.org/wiki/Portable_Batch_System –

답변

-1

나는 매일 qsub를 사용합니다. 어쩌면 멍청한 대답 일 수도 있지만 문제는 -v 인수에서 두 개의 배열 변수 사이에 남겨 두는 공간 때문일 수 있습니까?

당신의 qsub 명령은 "은 qsub -v하는 array1 = ("$ {arr1 [@]} '), 배열 2 = ("[@] $의 arr2") job_script.bash "

+0

죄송합니다.이 기능은 작동하지 않습니다. 그래서이 질문에 대한 답이 필요하다. –

+1

내가 찾은 유일한 것은 문자열을 문자열로 구분 된 목록의 형태로 변수를 배열로 제출 한 다음, 분리 한 pbs 스크립트에 행을 추가하는 것이다. 리스트가 배열 예를 들어, array1이 3 개의 파일리스트 인 경우,'array1list = "file1 : file2 : file3"'변수를 생성하십시오. 그런 다음 pbs 스크립트에서'array1 = ($ (echo $ array1list | sed 's/:// g'))'와 같은 줄을 추가하면 나머지 코드에서 배열로 사용할 수 있습니다 –

0

문제이어야한다 즉 qsub 함께 표시되지 않습니다, 오히려 당신은

# You did this... 
arr1=(1 2 3); arr2(a b c); 

# You meant this... 
arr1=(1 2 3); arr2=(a b c);