perl スクリプトでかなり奇妙な問題が発生しました。そこで何が起こっているのか、私にはまったくわかりません。
私のスクリプトはNet::SSH::Perl
、SSH 経由でホスト マシンに接続するために使用します。その後head -20
、config.ini でパターン (バージョン番号) を検索します。
バージョン番号を出力した後、cat
約 700 行の長さの別のファイルを表示します。
現在起こっていることは、バージョン番号を出力する代わりに、スクリプトが 700 行のファイル全体を出力することです。version-print のすぐ後ろに追加しない限り。print "\n"x10;
この振る舞いは私には何の意味もありませんが、あなたの誰かが私よりも頭が良く、答えを知っていると確信しています:)
スクリプトの下:
1 #!/usr/local/bin/perl -w
2 use lib './';
3 use strict;
4
5 use GetVersions;
6 use Net::SSH::Perl;
7
8
9 my $ssh = Net::SSH::Perl->new(
10 'host',
11 identity_files => ['~/.ssh/id_rsa']
12 );
13
14 $ssh->login('user');
15
16 my $ver_regex = '^psadm\.version\s*=\s*rel_(.+)$';
17
18 my ($file, $err, $exit) = $ssh->cmd('head -20 /config.ini');
19 my $version = $file =~ /$ver_regex/m;
20 print "version: $version\n",
21 #print "\n"x10;
22 ($file, $err, $exit) = $ssh->cmd('cat /application.ini');