O'Reilly logo

Exploring Expect by Don Libes

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required