2014-12-25 4 views
1

저는 Linux Mint를 사용 중입니다.프로그램은 터미널에서 제대로 실행되지만 쉘 스크립트에서는 작동하지 않습니다.

나는 samtools라는 프로그램을 가지고 있으며 내 바탕 화면의 폴더에 저장되어 있습니다. 실행 파일 경로를 $ PATH 변수에 추가했습니다. 즉, 내 로컬 ~/.bashrc 파일에는 다음 줄이 있습니다.

export PATH="~/Desktop/samtools/samtools-1.1:$PATH" 

실행 파일 samtools가이 폴더에 있습니다.

그래서 간단한 명령처럼 명령 줄에서 실행하려고하면 "samtools"를 입력하면됩니다. 명령 줄에서 실행 파일에 대한 직접 경로를 입력 할 때도 작동합니다.

그러나 쉘 스크립트에서 실행하려고하면 실행되지 않으며 해당 파일이나 디렉토리가 없거나 발견되지 않습니다.

사실, 일부 데이터를 사전 처리하기 위해 일부 셸 스크립트를 사용하는 다른 소프트웨어를 사용하려고합니다. 이 오류는 I는 다음과 같다 무엇입니까 :

Indexing... 
./RD_capture//process_one_capture.sh: 17: ./RD_capture//process_one_capture.sh: samtools: not found 
Sorting... 
./RD_capture//process_one_capture.sh: 20: ./RD_capture//process_one_capture.sh: samtools: not found 
Piling up... 
./RD_capture//process_one_capture.sh: 23: ./RD_capture//process_one_capture.sh: samtools: not found 

쉘 코드는 다음과 같습니다

echo "Indexing..." 
samtools index $INPUTDIR/$sample.bam 
#Then we sort them 
echo "Sorting..." 
samtools sort $INPUTDIR/$sample.bam $TMPDIR/$sample.sorted 
#Finally we pile them up 
echo "Piling up..." 
samtools mpileup $TMPDIR/$sample.sorted.bam | cut -f 1-4 > $OUTPUT/$(basename $sample .bam).pile 

은 누구도 날이 문제를 해결하는 데 도움이 될 수 있습니다

?

답변

2

리눅스가 samtools을 찾을 수없는 것 같습니다.

이 사용 해결하려면 이 (pwd에서 실행 파일에 이르는 경로 변경 pwd) 처음에이 선언

export set CURRENT_DIR=`pwd` 

및 전화 samtools는

$CURRENT_DIR/samtools 

를 사용하는 동안 참고 1 : 쉘 스크립트가 정확한 경로를 알려주는 것은 쉘 스크립트가 012에서 실행하는 것과 같습니다. 문제가 해결되지 않을 경우 다음과 같이, 명령을 사용하여 콘솔의 경로를 반향 시도 :

echo `pwd` 

주 2 :를 그 위에 다시 따옴표의 사용이 키보드의 왼쪽 상단 모서리에있는 .

참고 3 :export set은 쉘 스크립트에 전역 변수를 저장하는 데 사용되므로이 명령 뒤에 나타나는 명령은이 변수를 사용하고 필요할 때마다 업데이트 할 수 있습니다.

+0

감사합니다. 이 문맥에서 의미가 무엇을 의미하는지 설명 할 수 있습니까? 전에 samtools에 대한 경로를 명시 적으로 제공하려했으나 설정 없이는 작동하지 않았습니다. – YKY

관련 문제