또 다른 답변을 찾을 수 없지만 화가났습니다.
많은 파일 (~ 5000)에 복잡한 명령 (많은 단백질 순서 정렬)을 실행하는 for 루프를 사용하는 BASH 스크립트가 있습니다. 루프는 단독으로 제공 될 때 (즉, 오류 메시지에서 명령 프롬프트로 복사 붙여 넣기) 실행되지만 루프 내에 "그러한 파일 또는 디렉토리 없음"을 반환하는 명령문을 생성합니다. 아래 스크립트; 실제로는 몇 가지 더 많은 논쟁이 있지만 여기에는 몇 가지 대표적인 논점과 파일 인수가 포함됩니다. > '완료'하기 전에이 스크립트를 실행 BASH 문은 단독으로 실행되지만 for 루프에 "no such file"을 반환합니다.
#!/bin/bash
# Pass directory with targets as FASTA sequences as argument. # Arguments to psiblast # Common db=local/db/nr/nr outfile="/mnt/scratch/psi-blast" e=0.001 threads=8 itnum=5 pssm="/mnt/scratch/psi-blast/pssm." pssm_txt="/mnt/scratch/psi-blast/pssm." pseudo=0 pwa_inclusion=0.002
for i in ${1}/* do filename=$(basename $i) "local/ncbi-blast-2.2.23+/bin/psiblast\ -query ${i}\ -db $db\ -out ${outfile}/${filename}.out\ -evalue $e\ -num_threads $threads\ -num_iterations $itnum\ -out_pssm ${pssm}$filename\ -out_ascii_pssm ${pssm_txt}${filename}.txt\ -pseudocount $pseudo\ -inclusion_ethresh $pwa_inclusion" done
는 < scriptname는 > 라인에게 "< 마지막 줄을 제공합니다 : < 명령 > 시도 :. 해당 파일이나 디렉토리를 그때가 실행됩니다 프롬프트에 시도 된 명령을 붙여 넣을 경우 . 이 명령의
각. 몇 분 실행 따옴표없이
슬래시가 없기 때문에 변수에 절대 경로와 일반 파일 이름 접미사 . –
전체 multiline 명령을 인용하지 않아서 고마워. –