0

我想通过使用系统命令(或任何其他方式)从 perl 运行程序。

系统(“samtools”);

我认为它应该将它传递给 shell,但它抱怨,当我运行它时,不能执行“samtools”文件或目录不存在。我尝试了许多其他不同的程序,例如

系统(“天鹅绒”);

它工作正常,但不是这个(samtools)。你们中有人遇到过这个问题吗?我真的很困惑。

4

3 回答 3

2

您可以提供该文件位置的完整路径。

例子:

system( "/usr/bin/perl -de 1");
于 2013-03-12T09:46:08.143 回答
0

尝试将 Linux 命令放在 `` 字符中。也会起作用。

于 2013-03-12T10:59:17.923 回答
0

您是否在当前 shell 中手动修改$path了 for ?samtools

由于system启动了一个新的子 shell 来运行您的命令,samtools如果您的.bashrc. 通过以下方式检查:

perl -e 'system("echo \$PATH")'

echo $PATH

看看有没有什么不同。

于 2013-03-12T13:22:55.007 回答