我想通过使用系统命令(或任何其他方式)从 perl 运行程序。
系统(“samtools”);
我认为它应该将它传递给 shell,但它抱怨,当我运行它时,不能执行“samtools”文件或目录不存在。我尝试了许多其他不同的程序,例如
系统(“天鹅绒”);
它工作正常,但不是这个(samtools)。你们中有人遇到过这个问题吗?我真的很困惑。
您可以提供该文件位置的完整路径。
例子:
system( "/usr/bin/perl -de 1");
尝试将 Linux 命令放在 `` 字符中。也会起作用。
您是否在当前 shell 中手动修改$path
了 for ?samtools
由于system
启动了一个新的子 shell 来运行您的命令,samtools
如果您的.bashrc
. 通过以下方式检查:
perl -e 'system("echo \$PATH")'
和
echo $PATH
看看有没有什么不同。