我正在尝试从远程机器上的 xml 文件中获取版本号。我通过 Net::SSH::Perlcmd
函数做到这一点。它看起来像这样:
my ($version, $err, $exit) = $ssh->cmd("head -11 /some/path/to/the/file.xml | tail -1 | sed 's/<[^>]\+>//g' | xargs");
print Dumper $version;
我想要实现的是,从 XML 标记中提取数字<version>2.6</version>
当我通过 PuTTy 在 ssh-shell 上使用 cmd 时,它工作得很好
user@remotemachine:~>head -11 /some/path/to/the/file.xml | tail -1 | sed 's/<[^>]\+>//g' | xargs
2.6
user@remotemachine:~>
但是,Perl 打印
$VAR1 = '<version>2.6</version>
';
任何想法,为什么它不起作用?
编辑:显然它与 Net::SSH::Perl 模块无关,因为
perl -e "system(\"head -11 /some/path/to/the/file.xml | tail -1 | sed 's/<[^>]\+>//g' | xargs\");"
也打印
<version>2.6</version>