쉼표가 포함된 변수를 -v 옵션으로 qsub에 전달합니다.

쉼표가 포함된 변수를 -v 옵션으로 qsub에 전달합니다.

모두의 반응을 본 후스택 오버플로이 질문과 qsub에 익숙하지 않은 점에 관해서는 thqt U&L이 이 문제에 더 적합하다고 생각합니다.

qsub에서는 다음과 같이 환경 변수(쉼표로 구분된 쌍 목록 envar=value)를 전달할 수 있습니다.

info="This is some info"
qsub -v INFO=$info script.pbs

그러나 $info에 쉼표가 포함되어 있으면 문제가 발생할 수 있습니다.

info="This is some info, and here is some more!"
qsub -v INFO=$info script.pbs

그러면 다음과 같은 오류가 발생합니다.

오류: : -v"추가 사항이 있습니다!" 변수가 환경 변수에 설정되어 있지 않습니다.

info또한 캡슐화 를 시도했는데 INFO="$info"동일한 문제가 발생했습니다.

$info하나 이상의 쉼표가 포함되어 있어도 어떻게 올바르게 전달할 수 있나요? 전달될 때 항상 잘못된 방식으로 끝나는 개행에도 동일한 문제가 있습니다(백슬래시가 제거됨).

아마도 흥미로운 관찰은 echo -e $info예상 결과를 얻었을 때일 것입니다. 오류는 qsub특히 명령에서 트리거됩니다.

答え1

명령줄에 변수 이름(명령에 표시됨)만 지정하면 이 문제를 피할 수 있습니다.

export INFO="This is some info, and here is some more!"
qsub -v INFO script.pbs

또는

INFO="This is some info, and here is some more!" qsub -v INFO script.pbs

答え2

qsub -v INFO="$info" script.pbs

関連情報