Я загрузил некоторое программное обеспечение (называемое samtools
), и оно хранится в папке на рабочем столе.
Затем я добавил путь к исполняемому файлу в переменную окружения PATH
.
Другими словами, мой файл ~/.bashrc
имеет следующую строку:
export PATH="~/Desktop/samtools/samtools-1.1:$PATH".
Исполняемый файл с именем samtools
находится в этой папке.
Когда я пытаюсь запустить его из командной строки, просто набрав samtools
, это работает. Это также работает, когда я использую полный путь к исполняемому файлу.
Тем не менее, когда я пытаюсь запустить его из сценария оболочки, он не запускается и сообщает: ни No such file
или Directory not found
.
Может ли кто-нибудь помочь мне решить эту проблему?
РЕДАКТИРОВАТЬ: Как некоторые люди просили.
Точное сообщение об ошибке:
Realigning using Bowtie2...
./RP_capture//realign/filter_long_inserts.sh: 29: ./RP_capture//realign/filter_long_inserts.sh: samtools: not found
./RP_capture//realign/filter_long_inserts.sh: 29: ./RP_capture//realign/filter_long_inserts.sh: samtools: not found
Could not locate a Bowtie index corresponding to basename "./aux/chr1.fa"
Я также добавил echo $PATH
в мой скрипт, и вывод кажется правильным. Путь к samtools есть.
это пример одного из многих вызовов samtools из скрипта.
samtools index $OUTPUT/realignments/$file.abnormal.realign.bowtie.bam
Мне действительно удалось решить проблему с помощью
export set SAMTOOLS_DIR="/home/laba/Desktop/samtools/samtools-1.1"
внутри скрипта, а затем вызывая samtools следующим образом:
$SAMTOOLS_DIR/samtools [parameters]
Как ни странно, другой вызов двоичного скрипта работает только с явным указанием пути к исполняемому файлу. Без использования set
.