我在Linux上。
我有一个名为samtools的程序,它存储在我桌面上的一个文件夹中。我将可执行文件的路径添加到$PATH变量中。换句话说,我的本地~/..bashrc文件有一行:
export PATH="~/Desktop/samtools/samtools-1.1:$PATH"名为samtools的可执行文件位于此文件夹中。
因此,当我尝试像一个简单的命令一样从命令行启动它时,只需输入"samtools“就可以了。当我在命令行中键入可执行文件的直接路径时,它也能工作。
但是,当我尝试从shell脚本启动它时,它不会启动,并且说没有这样的文件或目录,或者没有找到。
实际上,我试图使用另一个软件,它使用一些shell脚本来预处理一些数据。我所得到的错误如下所示:
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 foundShell代码如下所示:
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有人能帮我解决这个问题吗?
发布于 2014-12-25 13:57:08
看来Linux无法找到samtools。
解决此问题的:在开始时声明这一点(用从pwd到可执行文件的路径更改pwd )
export set CURRENT_DIR=`pwd`在调用samtools时,请使用
$CURRENT_DIR/samtools注释1: --您负责在shell脚本从/usr/bin/sh执行时告诉它到/usr/bin/sh脚本的确切路径。尝试使用命令回显控制台上的路径,如果这没有帮助,如下所示:
echo `pwd`备注2:注释2:在键盘左上角使用背引号。
注释3: export set用于将全局变量存储在shell脚本中,以便在此命令之后出现的命令可以使用该变量,并在需要时进行更新。
https://stackoverflow.com/questions/27647790
复制相似问题