The Expect Home Page

Alert: Version 5.44 of Expect has been recalled due to unresolved problems. Please use 5.43.0. All links below point to 5.43.0 - Don

This page describes Expect and several other tools that can be found at this site. First, Expect . . .


Introduction

Expect is a tool for automating interactive applications such as telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really makes this stuff trivial. Expect is also useful for testing these same applications. And by adding Tk, you can also wrap interactive applications in X11 GUIs.

Expect can make easy all sorts of tasks that are prohibitively difficult with anything else. You will find that Expect is an absolutely invaluable tool - using it, you will be able to automate tasks that you've never even thought of before - and you'll be able to do this automation quickly and easily.

More information on Expect is available in the following documents:


Obtaining Expect for UNIX

You can get Expect and the examples from expect.nist.gov as expect.tar.Z or expect.tar.gz. The gz file is preferrable simply because it is quicker to download. However, if you have no idea what to do with a gz file once you've got it, just transfer the Z version of the distribution. Then, at the command line, type:

 uncompress expect.tar.Z
 tar -xvf expect.tar

This will create a directory containing the Expect distribution. Change to that directory and read the README file.

Note: Expect requires Tcl. If you don't already have Tcl, you can download it as source from the Tcl Developer Xchange web site or as binaries from ActiveState.

The most current snapshots of Expect will be found in the SourceForge CVS repository. Not all snapshots are official releases.

Not all old versions of Expect are available, but some are. The current version is also available this way if you need to refer to it by explicit version.

The md5 hash for expect.tar.gz (also available by explicit version as expect-5.44.1.tar.gz) is: 43e1dc0e0bc9492cf2e1a6f59f276bc3

Obtaining Expect for Windows

There are several ports of Expect for Windows:
Author Location Other notes Disclaimer
ActiveState ActiveState Native port, based on Expect V5.39 and Tcl 8.4+, runs on XP/NT/2k. Available with support or as part of ASPN Tcl.

The following statement is required per NIST policy.

By selecting these links, you will be leaving NIST webspace. We have provided these links to other web sites because they may have information that would be of interest to you. No inferences should be drawn on account of other sites being referenced, or not, from this page. There may be other web sites that are more appropriate for your purpose. NIST does not necessarily endorse the views expressed, or concur with the facts presented on these sites. Further, NIST does not endorse any commercial products that may be mentioned on these sites.

Gordon Chaffee http://bmrc.berkeley.edu/people/chaffee/tcltk.html Native port, based on Expect V5.21.
Rob Savoye http://www.gnu.org/software/dejagnu A cygwin-based port (i.e., feels like UNIX), version unknown, bundled with DejaGnus.


Obtaining the examples

The distribution contains many example scripts, including well-known scripts such as multixterm, kibitz, rftp (recursive ftp), passmass, autoexpect and the delicious beer script. All of the substantive examples in the book are included and many of them have man pages themselves. Here's the list of examples.

The best way to obtain the examples is to follow the directions for obtaining Expect (above). Once you have received and unpacked the distribution, you can find the examples in the example directory. You can also retrieve examples, man pages, and web pages individually here although you run the risk of trying an example that depends on a more up-to-date version of Expect than you have installed. (The web pages were all generated from the man pages so there should be no difference in content.)

Here are man pages for some of the examples. (Not all of the examples need man pages but these do.)


Links to related information

[The following statement is required per NIST policy] By selecting these links, you will be leaving NIST webspace. We have provided these links to other web sites because they may have information that would be of interest to you. No inferences should be drawn on account of other sites being referenced, or not, from this page. There may be other web sites that are more appropriate for your purpose. NIST does not necessarily endorse the views expressed, or concur with the facts presented on these sites. Further, NIST does not endorse any commercial products that may be mentioned on these sites.

The following are some other particularly worthwhile Expect-related links.

More about Exploring Expect

"Exploring Expect" is an excellent resource for learning and using Expect. (Pub: O'Reilly, ISBN 1-56592-090-2) The book contains hundreds of examples and also includes a tutorial on Tcl. Exploring Expect is 602 pages.

NIST policy is to avoid endorsements for commercial products or organizations. Hence this page provides no link for the publisher or any further information about how to obtain the book.

Articles, Papers, and Chapters on Expect


History

Expect was conceived of in September, 1987. The bulk of version 2 was designed and written between January and April, 1990. Minor evolution occurred after that until Tcl 6.0 was released. At that time (October, 1991) approximately half of Expect was rewritten for version 3. See the HISTORY file for more information. The HISTORY file is included with the Expect distribution.

Around January 1993, an alpha version of Expect 4 was introduced. This included Tk support as well as a large number of enhancements. A few changes were made to the user interface itself, which is why the major version number was changed. A production version of Expect 4 was released in August 1993.

In October 1993, an alpha version of Expect 5 was released to match Tcl 7.0. A large number of enhancements were made, including some changes to the user interface itself, which is why the major version number was changed (again). The production version of Expect 5 was released in March '94.

In the summer of 1999, substantial rewriting of Expect was done in order to support Tcl 8.2. (Expect was never ported to 8.1 as it contained fundamental deficiencies.) This included the creation of an exp-channel driver and object support in order to take advantage of the new regexp engine and UTF/Unicode. The user interface is highly but not entirely backward compatible. See the NEWS file in the distribution for more detail.

There are important differences between Expect 3, 4, and 5. See the CHANGES.* files in the distribution if you want to read about the differences. Expect 5.30 and earlier versions have ceased development and are not supported. However, the old code is available from http://expect.nist.gov/old.

The Expect book became available in January '95. It describes Expect 5 as it is today, rather than how Expect 5 was when it was originally released. Thus, if you have not upgraded Expect since before getting the book, you should upgrade now.

Historical notes on Tcl and Tk according to John Ousterhout

I got the idea for Tcl while on sabbatical leave at DEC's Western Research Laboratory in the fall of 1987. I started actually implementing it when I got back to Berkeley in the spring of 1988; by summer of that year it was in use in some internal applications of ours, but there was no Tk. The first external releases of Tcl were in 1989, I believe. I started implementing Tk in 1989, and the first release of Tk was in 1991.


Other useful software at this site


Even more links

[The following statement is required per NIST policy] By selecting these links, you will be leaving NIST webspace. We have provided these links to other web sites because they may have information that would be of interest to you. No inferences should be drawn on account of other sites being referenced, or not, from this page. There may be other web sites that are more appropriate for your purpose. NIST does not necessarily endorse the views expressed, or concur with the facts presented on these sites. Further, NIST does not endorse any commercial products that may be mentioned on these sites.

The following links have nothing specifically to do with Expect but may be significant in their value to Expect users nonetheless:

Books

FAQs

Miscellaneous

Pages that are particularly worthwhile but don't fall in the preceding categories.
Last edited: Fri Oct 20 17:54:51 EDT 2006 Technical Contact: Don Libes
National Institute of Standards and Technology Disclaimer/Privacy