![쉼표가 포함된 변수를 -v 옵션으로 qsub에 전달합니다.](https://linux55.com/image/222058/%EC%89%BC%ED%91%9C%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EB%B3%80%EC%88%98%EB%A5%BC%20-v%20%EC%98%B5%EC%85%98%EC%9C%BC%EB%A1%9C%20qsub%EC%97%90%20%EC%A0%84%EB%8B%AC%ED%95%A9%EB%8B%88%EB%8B%A4..png)
모두의 반응을 본 후스택 오버플로이 질문과 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