Chapter 9. The Expect Program

In this chapter, I will cover Expect’s command-line arguments and describe more about how Expect scripts fit in with other UNIX utilities. I will also focus on the difference between running Expect interactively versus non-interactively.

Expect—Just Another Program

To the operating system, Expect is just another program. There is nothing special about it. For example, it has attributes similar to many other programs you are familiar with:

  • Expect has standard input, standard output, and standard error. They can be read from and written to. They can be redirected.

  • Expect can be run in the background from the command-line using & or from cron or at.

  • Expect can be called from other programs, such as C programs, shell scripts, awk scripts, and even other Expect scripts.

Expect is also an interpreter, and it shares attributes of most other interpreters:

  • Expect supports the #! convention.

  • Expect can be run interactively, taking commands from the keyboard, or non-interactively, taking commands from scripts or standard input.

  • Expect takes flags or can pass them on to scripts.

Like most interpreters, Expect takes a file name as an argument, and uses it as a source from which to read commands.

% expect script.exp

If you want to pass additional information to the script, you can do so just by putting it at the end of the command line.

% expect script.exp foo bar 17

Inside the script, this information can be found in the variable argv. The value of argv can be manipulated as ...

Get Exploring Expect now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.