http://www.perlmonks.org?node_id=1029190


in reply to Re: Responding to terminal I/O
in thread Responding to terminal I/O

I am trying to write a script that will simulate a superuser log in attempt failure, but I'm not sure how to send a password to the terminal when the terminal requests a password.

Replies are listed 'Best First'.
Re^3: Responding to terminal I/O
by CountOrlok (Friar) on Apr 17, 2013 at 19:00 UTC
    this should get you started:
    use strict; use warnings; use Expect; my $timeout = 5; my $password = "password"; my $shell_prompt = ']$ '; my $exp = new Expect; $exp->raw_pty(1); $exp= Expect->spawn("su") or die "Error calling su: $!\n"; unless ($exp->expect(5,"Password: ")) { die; # add error handling }; $exp->send("$password\n"); unless ($exp->expect(5, $shell_prompt)) { die; # add error handling }; print "Login successful\n";