Automating Interactive Programs with Expect and Autoexpect

Need a robot to take care of a few tasks for you every day in your environment? If so, Expect just may be your answer. Expect is a programming language that “talks” with an interactive program or script that requires user interaction for input. Expect works by expecting input, and upon receiving the expected input, the Expect script will send a response, just like magic.

To make it easy to create Expect scripts, and to help users learn how to use Expect to interact with a program, the programmers came up with the autoexpect command. By typing autoexpect and pressing Enter, we can create the script automatically by just interacting with the program, without making a mistake, as we normally would, and save the interaction in an Expect script file. When we finish interacting with the program, we simply press Ctrl+D to save the new Expect script. The target command or application can also be supplied as an argument to autoexpect, and Expect will spawn the process for us. We will get to more details in the coming pages. For now, just relax and let's get started.

Downloading and Installing Expect

Expect requires Tcl to be installed before Expect will work to interact with a program. If you need to install Tcl, you can download the code from The simplest method of installing Tcl and Expect is to use yum or apt to install the file sets from one of many mirror sites around the world. You ...

Get Mastering UNIX® Shell Scripting: Bash, Bourne, and Korn Shell Scripting for Programmers, System Administrators, and UNIX Gurus, Second Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.