모두의 반응을 본 후스택 오버플로이 질문과 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