#!/usr/bin/perl # This example is a replay of sorts of the rlogin example #before except in this example we turn control of the process back #to the user through use of interact(). use Expect; # $Expect::Debug=2; $Expect::Exp_Internal=1; $RSH='/usr/local/bin/ssh'; $host_to_login_to=shift(@ARGV); # Get the password. We will show how to do this without printing the # password to the screen later. print "Enter password: "; $password=; chomp $password; $rsh=Expect->spawn($RSH,$host_to_login_to); # Look for a password prompt. $rsh->expect(30,'-re','word:\s$')||(die"Never got password prompt\n"); print $rsh "$password\r"; # Look for a prompt. Prompt can be # $ > or ] followed by a whitespace. $prompt = '[\]\$\>\#]\s$'; # Note the use of -re $rsh->expect(30,'-re',$prompt)||(die "Never got prompt on host\n"); # Start top print $rsh "exec top\r"; # OK, now return control to user. $rsh->interact();