Ich versuche, ein Login-Prompt in Perl zu automatisierenAutomate und Capture-Login-Prompt durch Perl erwarten
I SSHGetCredentials('login_prompt' => 1)
bin mit einer Anmeldeaufforderung zu erzeugen, die eine Funktion der Expect::SSH
der Perl-Bibliothek
Dies ist Wie mein Code aussieht, hier REST::Client->getCredentials()
ruft intern SSHGetCredentials('login_prompt' => 1)
auf, die eine Login-Aufforderung aufrufen und die eingegebene Benutzer-ID und das Kennwort zurückgeben würde.
use Expect;
my $command = "perl -e 'use REST::Client; REST::Client->getCredentials()'";
my $exp = Expect->spawn($command) || die "i am done";
$exp->expect(undef, 'Login on Remote:');
$exp->send("user\n");
$exp->expect(undef, 'Password of user:');
$exp->send("12345\n");
Jetzt möchte ich, um zu überprüfen, ob Benutzername oder das Passwort ist, was ich bestanden haben, so dass ich möchte, dass sie erfassen und zu vergleichen.
Wie kann ich sie erfassen?
Ich versuchte dies:
use Expect;
my $command = "perl -e 'use REST::Client; \$tmp = REST::Client->getCredentials();print \$tmp->{'username'};print \" \";print \$tmp->{'password'};'";
my $exp = Expect->spawn($command) || die "i am done";
$exp->expect(undef, 'Login on Remote:');
$exp->send("user\n");
$exp->expect(undef, 'Password of user:');
$exp->send("12345\n");
my $value = $exp->expect(1);
aber $value
hat nichts und $exp->expect(1)
druckt nur die Werte in STDOUT.