リモート マシンの 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シェルで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>