qsub
클러스터 에 제출할 파일을 준비하는 스크립트가 있습니다. 파일을 기반으로 배열을 만든 다음 해당 배열의 요소를 사용하여 qsub 파일을 만듭니다. 그러나 $RawData/$i_1.fastq.gz
부품에 변수를 추가 할 수 없습니다 . 이것은 내 스크립트입니다.
> cat create.sh
#!/bin/bash
RawData="/home/jfertaj/data/FASTQ"
# make an array of each sample id
mapfile -t myArray < array.txt
for i in "${myArray[@]}"
do
cat > pbs.script.$i << EOF
#!/bin/bash
kallisto quant -t 16 -b 100 -o /home/jfertaj/data/results_kallisto/output_bootstrap_$i $RawData/$i_1.fastq.gz $RawData/$i_2.fastq.gz
EOF
done
exit 0;
bash 스크립트를 실행하고 생성 된 파일을 보면 다음과 같습니다.
...
kallisto quant -t 16 -b 100 -o /home/jfertaj/data/results_kallisto/output_bootstrap_INTP_993 /home/jfertaj/data/FASTQ/.fastq.gz /home/jfertaj/data/FASTQ/.fastq.gz
포함을 시도 "$i"
했지만 결과 파일에 "INTP_993"_1.fastq.tz
. 그것을 고칠 방법이 있습니까?
교체 $RawData/$i_1.fastq.gz $RawData/$i_2.fastq.gz
와 함께 $RawData/${i}_1.fastq.gz $RawData/${i}_2.fastq.gz
.
즉, 이것을 변경하십시오.
kallisto quant -t 16 -b 100 -o /home/jfertaj/data/results_kallisto/output_bootstrap_$i $RawData/$i_1.fastq.gz $RawData/$i_2.fastq.gz
이에:
kallisto quant -t 16 -b 100 -o /home/jfertaj/data/results_kallisto/output_bootstrap_$i $RawData/${i}_1.fastq.gz $RawData/${i}_2.fastq.gz
쉘은 변수 에 "_1"및 "_2"를 추가 하려는 경우 i_1
및 i_2
변수 이름으로 처리합니다 i
. 이러한 상황 somevar
에서 변수 이름에 유효한 기호로 시작하는 일부 접미사가 뒤에 오는 일부 변수 _suffix
를 사용해야하는 경우 변수를 식별하기 위해 중괄호를 사용해야합니다. 그래서 대신에 $somevar_suffix
당신이 작성해야합니다 ${somevar}_suffix
.
이것은에 언급되어 있습니다 man bash
.
$ {parameter}
매개 변수 값이 대체됩니다. 매개 변수가 둘 이상의 숫자가있는 위치 매개 변수이거나 매개 변수 다음에 이름의 일부로 해석되지 않는 문자가 오는 경우 중괄호가 필요합니다 . [...]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다