我有一个命令
$output = `somecommand parm1 parm2`;
当我尝试运行这个 perl 脚本时,我得到了。
Can't exec "somecommand" at .....
似乎没有看到“我有一个朋友在不同的环境中运行它并且运行良好”之间的第一个空格以外的任何内容。
我的环境中可能有什么会导致这种情况?我正在使用 perl 5.20.0 。
答案1
这可能是 PATH 问题?下面是运行我的 $PATH 中的 echo 命令的示例脚本。
root@kt-wim-play:~# cat test.pl
#!/usr/bin/perl -w
use strict;
print "PATH=$ENV{PATH}\n";
print "Running a command... [" . `echo foo bar baz` . "]\n";
root@kt-wim-play:~# perl test.pl
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Running a command... [foo bar baz
]
答案2
如果你想在 perl 中运行 linux 命令?试试这个。
my $output = system("/path/to/command args");