Expect is known primarily as an indispensable application for system administrators. Amazingly enough, it is, at its heart, Just Another Tcl Extension (JATE).
LV: Our local public library used to have a telnet interface to its patron account system. I wrote an Expect script which logged onto the system, queried for the holdings status of each account in my family, then logged off. I would run this from cron and get a report as to which books were coming up for return, what items were held for pick up, and so on. I then placed the text version of that report into a directory where a daily sync to my Palm Pilot would result in a PalmOS memo containing this info.
People use Expect to automate interaction with non-GUI (and typically non-cursor-controlled, even though a persevering Expect programmer can tackle them, too) applications that prompt the user for input.
Examples of commands that often appear in Expect scripts are the Unix passwd, ftp, telnet, ssh, sudo, and command-line shells. Expect is the natural answer for those who want to automate password changes, periodically update FTP sites, manage Cisco routers, or check the statuses of a collection of remote systems by logging in.
What: Expect Where: http://expect.sf.net/ http://expect.nist.gov/ http://expect.nist.gov/FAQ.html http://expect.nist.gov/scripts/ ftp://ftp.nist.gov/mel/div826/subject/expect/ http://prdownloads.sf.net/expect/slavedrv1.1.zip http://phaseit.net/claird/comp.lang.tcl/expect.html Description: Expect is a scripting language to interace with programs such as FTP, telnet, fsck, and others that normally cannot be automated from a shell script. Think of it as providing the means to 'remote control' other programs. It is thus also good for automating program exection on remote systems, and providing the means to creating Tk interfaces on top of other, non-GUI, programs V5.x is Tcl 7.x compatible. The version on liv, while not from the author, is a set of source modified to be used with tclX, BLT, and TkSteal (unmaintained). V5.28 (the tar.gz version) is Tcl 8.0 compatible. This package will also build expectk, which allows one to write Tk interfaces to the above types of programs. The version at berkeley is a release of Expect for Windows NT, which includes patches to Tcl to allow fileevent to work for pipes and serial ports. It does not work for Windows 95. Check its web page for info on the latest development snapshots. The url for a version of Expect 5.25/Tcl 7.6 for Japanese Tcl is mentioned above. The slavedrv code mentioned above is an attempt to port a recent version of expect to recent version of Windows. It may not have all the expect functionality. Version 5.44.1 of Expect, compatible with Tcl 8.5, is also available from the SF.net CVS repository. Updated: 8/2009 Contact: See the web sites
The current maintenance of the package can be found at expect.sf.net , with access to the CVS available via sf.net's cvs repository.
Expect is part of the ActiveTcl Batteries Included distribution on Unix and as of 2005, the Windows version is available via ActiveTcl as well [L1 ].
See Expect Examples
LV: Note that expect is also a command that is a part of the expect extension; see the expect source distribution for the doc.
Lars H: Also note that in the latter sense, expect is a powerful control structure (pretty much an automaton, is it not?).
srinadh 2009-10-08 10:41:28: I have an expect program. Sometimes it produces a core dump. How do I see core dump backtrace? Thanks
susja 2010-11-12 14:05:18: I have a simple task: run autoexpect program to automate telnet. I was able to do it on my Solaris box but I am stuck on my Windows XP box. Here's what I did:
thanks in advance
bodangly 2011-12-13 18:47:18: The above question is old and the user likely found the answer however for reference, the PATH environment variable needs to have the location of the autoexpect program appended to it.