bash 스크립트의 #
문자는 주석을 표시합니다. 따라서 행 #$ -pe mpi $NUMCORES
에서 environement 변수 NUMCORES
의 값은 주석이므로 사용되지 않습니다.
그러나이 주석은 qsub
명령에 매개 변수를 전달하는 데 유용합니다. 예를 들어 the man page 및 these examples을 참조하십시오. 이러한 매개 변수는 명령 줄에서 전달할 수 있습니다.
qsub -pe mpi 32 myjob.sh
대신 qsub보다 먼저 명령을 사용하여 작업을 생성 할 수 있습니다. 이제 작업 스크립트 jobgeneric.sh
가 있다고 가정 해 봅시다 :
export NUMCORES=32
sed 's/$NUMCORES/'$NUMCORES'/g' jobgeneric.sh > job.sh
cat job.sh
도 Environment variable substitution in sed 참조 :
#!/bin/bash
#$ -N useless
#$ -cwd
#$ -pe mpi $NUMCORES
#$ -l h_vmem=6G
echo 42
가의 환경 변수를 대체 할 새 파일
job.sh
을 만들 수
sed
command을 사용하자. 결과는 다음과 같습니다
#!/bin/bash
#$ -N useless
#$ -cwd
#$ -pe mpi 32
#$ -l h_vmem=6G
echo 42
이제 작업이 qsub job.sh
를 사용하여 전송 될 수있다!
정말 bash 스크립트입니까? 첫 번째 줄은 무엇입니까? * "$ NUMCORES의 초기 부분에는 십진수가 포함되어 있지 않습니다"* 무엇을 의미합니까? 후속 부분에는 십진수가 포함됩니까? 정확하게 '32'가 포함 된 것으로 표시하거나 완전히 진실하지 않습니까? –
같은 스크립트입니까, 아니면 'NUMCORES = 32 내보내기'가 누락 되었습니까? –