an Expect script to do a remote-host 'ls' listing. FROM: http://www.wellho.net/forum/The-Tcl-programming-language/What-is-Expect-a-sample.html (imaged on 2009 mar 19) Posted by admin (Graham Ellis), 7 October 2002. Expect is an extension to Tcl which allows you to automate processes such as telnet and FTP by "mimicing" the user's input in a terminal window. You use the spawn command to spawn a telnet (or FTP, or whatever) process, you use send (or exp_send if you're also using Tk) to send some text as if it was typed, and then you wait for a specific input pattern to come back via the expect command. Here's an example that does a remote ls listing; enter host computer name into an entry box, click on the "go" button, and you get a listing of all files in the trainee home directory on that system. Code: #!/usr/bin/expectk proc getfiles {host} { spawn telnet log_user 0 expect "telnet>" exp_send "open $host\r" expect { "login: " { } "Unable" {return "ERROR"} } exp_send "trainee\r" expect "sword: " exp_send "abc123\r" expect "\$ " exp_send "ls -1\r" expect "\$ " set got $expect_out(buffer) exp_send "exit" return $got } set hostname "computer name" entry .host -textvariable hostname button .do -text go -command { set there [getfiles $hostname] .what delete 1.0 end .what insert end $there } text .what -width 30 -height 40 pack .host .do .what