Version 138 of Expect

Updated 2008-08-10 10:14:41 by lars_h

Expect is known primarily as an indispensable application for system administrators. Amazingly enough, it is, at its heart, Just Another Tcl Extension (JATE).

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, and command-line shells. Expect is the natural answer for those who want to automate password changes, or periodically update FTP sites, or check the statuses of a collection of remote systems by logging in.


External Resources

http://expect.nist.gov/ was the original home Web site for Expect. It supplies sources and considerable history, background, and instruction. It does fail to mention, though, recognition [L1 ] of Expect as one of the 100 most important publications of NIST's [L2 ] first century.

The current maintenance of the package can be found at http://expect.sf.net/ , with access to the CVS available via sf.net's cvs repository. Note that the link (on the sf.net primary page) for the CVS repository is out of date; visit http://sf.net/projects/expect/ and use the link there to look at the cvs repository from your web browser.

This package is part of the ActiveTcl Batteries Included distribution on unix and as of 2005, the Windows version is available via ActiveTcl as well [L3 ].

ActiveState maintains online copies of documentation at [L4 ].

There's an expect FAQ here: http://expect.nist.gov/FAQ.html .

There's a book called BOOK Exploring Expect to which most people refer when asked questions about Expect.

CL keeps a bit of supplementary information on Expect at [L5 ].

Expect External Resources gives pointers to some wiki-external Expect material.

escargo 11 Sep 2007 - I found an expect-lite project on SourceForge: http://expect-lite.sourceforge.net/

LV 2007 Nov 09

expect4j [L6 ] provides a certain level of expect's functionality to the Jacl / Java programmer. Package author Justin Ryan reports on the TclJava mailing list [L7 ] I've successfully ported a 100K tcl script based on expect to tcljava, without any changes, by just using expect4j.


Wiki-Local Expect Resources:


Expect Articles

  1. Don explains how far from trivial pty management is, and other lessons, in his memoir [L8 ] on Expect's first seven years.
  2. "Expect Success" [L9 ] is, for Kim Richert, "the best Expect article I've read".
  3. "Expect--the only language you need" [L10 ]
  4. "Expect: The Firefighter's Friend" [L11 ]
  5. "Unknown Expect" [L12 ]
  6. "Test-driven development, Expect, and Systems Administration" [L13 ]
  7. http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/expect/tutorial.html
  8. "Expect plays a crucial role in network management" [L14 ]

LV Note that expect is also a command that is a part of the expect extension; see http://www.tcl.tk/man/expect5.31/expect.1.html 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?).