ACIL FM
Dark
Refresh
Current DIR:
/usr/share/doc/perl-Expect/tutorial
/
usr
share
doc
perl-Expect
tutorial
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
1.A.Intro
2.37 MB
chmod
View
DL
Edit
Rename
Delete
2.A.ftp
3.01 MB
chmod
View
DL
Edit
Rename
Delete
2.B.rlogin
3.95 MB
chmod
View
DL
Edit
Rename
Delete
3.A.debugging
1.93 MB
chmod
View
DL
Edit
Rename
Delete
4.A.top
928 B
chmod
View
DL
Edit
Rename
Delete
5.A.top
1.11 MB
chmod
View
DL
Edit
Rename
Delete
5.B.top
2.39 MB
chmod
View
DL
Edit
Rename
Delete
6.A.smtp-verify
3.18 MB
chmod
View
DL
Edit
Rename
Delete
6.B.modem-init
1.79 MB
chmod
View
DL
Edit
Rename
Delete
README
644 B
chmod
View
DL
Edit
Rename
Delete
Edit file: /usr/share/doc/perl-Expect/tutorial/5.B.top
#!/usr/bin/perl # Here we set manual_stty on the process so we can do things like #hit ^Z to stop it instead of the ^Z going to the process on the other machine. # This is to say, normally when you interact with a process STDIN is #put in raw mode so everything you type talks to the process at the other end. # Picture this. When you telnet somewhere and start a process (top #for example) you are talking to telnet in raw mode. If you press ^Z it #goes through telnet to the shell on the remote machine and the process #at the other end is stopped. Here we're going to make it so raw mode is #never set and when you press ^Z or ^C it will stop/interrupt Expect. # Also briefly demonstrated is the use of Expect::interconnect(), #a more general/versatile alternative to interact. use Expect; # Debugging anyone? # $Expect::Log_Stdout=1; # $Expect::Exp_Internal=1; # $Expect::Debug=1; $RSH='/usr/bin/ssh'; $host_to_login_to=shift(@ARGV); print "Enter password: "; $|=1; # First we have to initialize STDIN in to an expect object. $stdin=Expect->exp_init(\*STDIN); # Now turn off echoing $stdin->exp_stty('-echo'); # The easy way to do this is: #$password=<STDIN>; #chop $password; # The somewhat harder way is to use $stdin->expect. This would look like: # ($match_num,$error,$match,$before,$after)=$stdin->expect(undef,"\n"); $password = $before; # Turn echo back on $stdin->exp_stty('echo'); # print that newline that wasn't echoed print "\n"; #$Expect::Exp_Internal=1; $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"; # We already have an inited handle for STDIN above which we can use. # We don't just do $rsh->interact because it will go monkeying # with tty settings by default (set it raw). $stdin->manual_stty(1); # Instead we use interconnect directly. # The trick here is to make sure: # 1. Everything listening to a handle is added to its # listen group. # 2. Only what you want is jabbering at STDOUT. # # In this case only $rsh will talk to STDOUT so we don't have to # change any log_stdout() settings. $stdin->set_group($rsh); Expect::interconnect($stdin,$rsh);
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply