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

bala_999 has asked for the wisdom of the Perl Monks concerning the following question:

HI, I am new to perl.I have written a piece of code to automate login.I was able to login to my host,i am unable to switch to super user mode ..Also,i want to execute multiple commands on host & extract output of each executed commands.How to extract Output of each command i executed? Im sorry that im asking you to write the code.I will appreciate ur suggestion..
#!/bin/perl use Expect; $host = xxxxx; $user = yyyyy; $pw = shift; #--- CONFIGURATION --------------------------------------------------- +--------# $cmd = "ssh -l $user $host"; $prompt = "[Pp]assword"; #--- START SSH LOGIN SEQUENCE ! -------------------------------------- +--------# $exp = new Expect(); $exp->log_file("SSHLOGFILE.txt"); $exp->raw_pty(1); $exp->spawn($cmd); $exp->expect(10, [ qr/\(yes\/no\)\?\s*$/ => sub { $spawn->send("yes\n"); + exp_continue; } ], [ $prompt => sub { $_[0]->send("pwd\n"); } ]); Here im unable to switch to super user login $exp->send("su - root\n"); $exp->expect(10, [ $prompt => sub { $_[0]->send("pwd\n"); } ]); $exp->close();