"프로그램" 폴더에 많은 프로그램 목록(samtools, annovar, bra, bedtools 등)이 있습니다.
경로 내보내기에 대한 많은 게시물을 읽었으므로 작업 폴더에서 프로그램의 전체 경로를 식별할 필요가 없습니다. 그러나 여전히 작동하지 않습니다. 모든 것을 혼합하고 있기 때문인 것 같습니다.
변형_효과_예측기 폴더에 Perl 스크립트가 있으며 스크립트의 전체 경로를 입력하지 않고 다른 폴더에서 해당 스크립트를 평가하고 싶습니다.
저는 OS X에서 작업 중입니다. ~/.profile
다음을 추가했습니다 .
export PATH=/Users/pics/Desktop/MyDocuments/Programms/ensembl-tools-release-78/scripts/variant_effect_predictor:$PATH
어쨌든 그것은 나에게 다음과 같이 말합니다.
pik:Annotation pic$ perl variant_effect_predictor.pl -custom C0066PH1.H3K4me1.ppqt_macs2_broad_v2.20130819.bed.gz,BED_annotation,BED,overlap,1 -i SNPs_vep_input.txt --cache --force_overwrite --symbol
Can't open perl script "variant_effect_predictor.pl": No such file or directory
따라서 경로를 내보내거나 추가하지 않습니다. 어떻게 해결할 수 있나요?
답변1
실행할 때 호출된 스크립트가 현재 디렉터리에 있음 을 실행 파일 perl variant_effect_predictor.pl
에 알리고 실행합니다.perl
variant_effect_predictor.pl
실행 가능( chmod +x /Users/pics/Desktop/MyDocuments/Programms/ensembl-tools-release-78/scripts/variant_effect_predictor/variant_effect_predictor.pl
)이고 스크립트가 내부적으로 shebang(" #!/usr/bin/perl
" 또는 첫 번째 줄의 유사한 문자) 으로 시작하는 경우 perl
명령 시작 부분에 해당 부분을 남겨두면 원하는 항목을 bash
검색 할 수 있습니다. $PATH
다시 원할 것입니다.
답변2
Braatchley가 작성한 것처럼 Perl 스크립트가 실행 가능하고 올바른 shebang 행이 있는 경우 명령의 "perl" 부분을 생략할 수 있습니다.
또는 Perl의 명령줄 옵션을 사용하여 PATH에서 검색 -S
하도록 할 수 있습니다.variant_effect_predictor.pl
-에스
프로그램 이름에 경로 구분 기호가 포함되어 있지 않으면 Perl이 PATH 환경 변수를 사용하여 프로그램을 검색하도록 합니다.
따라서 명령줄은 다음과 같이 시작됩니다.
perl -S variant_effect_predictor.pl -custom C0066PH1.H3...
답변3
환경을 올바르게 설정하려면 .profile 대신 .bashrc를 사용해야 합니다.
.bashrc 파일이 있는 경우(현재 대부분의 최신 배포판에서는 기본적으로 .bashrc를 사용함) .bashrc 파일이 존재하는지 확인하고 찾기 위해 .profile 파일을 처리하지 않는 IF 문이 .profile 파일에 있을 가능성이 높습니다. .bashrc 실행은 파일 이후에도 계속됩니다.
"check .bashrc" IF 문이 포함된 일반적인 .profile 파일의 내용
.profile 파일에서 추출됨...
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
PATH 변수에 추가 항목을 추가하려면 .bashrc 파일에 이 줄을 추가하세요.
$ PATH="$PATH:user_path_1:user_path_2:user_path_3"
$PATH는 기존 경로 변수를 유지하며 추가 경로를 추가하려면 각 추가 경로 앞에 콜론[:]을 사용하면 됩니다.
또는 여러 .bashrc 파일을 사용하여 필요한 환경 설정을 수용할 수 있습니다. 파일을 생성하고 다른 이름 .bash_other_rc로 이름을 지정한 다음 아래와 같이 명령줄에서 호출하세요.
$ bash -f .bash_other_rc
그러면 세션에 필요한 변수, 별칭 등을 사용하여 bash 세션이 시작됩니다.