Thread StringCompare Problem (4 answers)
Opened by PROXEN at 2014-03-05 22:31

PROXEN
 2014-03-05 22:31
#173858 #173858
User since
2013-07-23
21 Artikel
BenutzerIn
[default_avatar]
Hallo Leute,

ich erzeuge remote eine Testdate 'toch test' als Returnwert bekomme ich in $c dies zurück "[bw@localhost ~]$ "
1. ein Vergleich mit eq funktioniert nicht - weiß nicht warum? (wegen Sonderzeichen @, Leerzeichen?? - keine Ahnung??)
2. auch der Reguläre Ausdruck funktioniert nicht ??
3. der gleiche Reguläre Ausdruck funktioniert wenn '[bw@localhost ~]$ ' hardcodiert in $c hinterlegt ist.
Ich denke es muss mit den Sonderzeichen zu tun haben - stehe auf der Leitung.

thx

Script:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use strict;
use warnings;
use Net::SSH::Expect;

my $ssh = Net::SSH::Expect->new(
host => '10.0.0.9',
user => 'bw',
password => 'test12',
raw_pty => 1
);

my $login_output = $ssh->login("login:","password:",1);
my $c = $ssh->exec("touch test");
print "----->".$c."<---";
print "\n";
if ($c eq '[bw@localhost ~]$ ' ){
print "1 gefunden\n";
}
if($c =~ /^\[(.)*\@(.)*\ \~\]\$ $/){
print "2 gefunden!\n";
}else {
print "2 nicht gefunden!\n";
}
$c = '[bw@localhost ~]$ ';
if($c =~ /^\[(.)*\@(.)*\ \~\]\$ $/){
print "3 gefunden!\n";
}else {
print "3 nicht gefunden!\n";
}



Ausgabe
Code: (dl )
1
2
3
--------->[bw@localhost ~]$ <----------
2 nicht gefunden!
3 gefunden!

View full thread StringCompare Problem