The Default Action

The interpreter command lets you interactively give commands to Expect and is described further in Chapter 9 (p. 225). The interpreter command is very useful when debugging scripts or avoiding having to hardcode commands beyond some point where the interactions are stable enough. Just call interpreter with no arguments.

interpreter

The last action in an interact may be omitted in which case it defaults to interpreter. The following two commands are equivalent:

interact X
interact X interpreter

The first form is simply a shorthand. There is no other inherent value to omitting the action. Note that this shorthand can only be used with the final pattern—with any other pattern, the subsequent pattern would be misinterpreted as the action to the previous pattern. Consider the following two commands. If X is pressed, the first command invokes interpreter while the second mistakenly invokes pattern.

interact X interpreter pattern action
interact X pattern action               ;# OOPS!

It is common to write scripts that end by leaving the user in an interact command, interacting with a process in raw mode. The interpreter command provides a way to get back out to Expect before the script terminates. The environment can then be explored or manipulated while the script is still running.

While I just said that omitting the action is only a shorthand, it is intended to be a compellingly convenient shorthand. Indeed, it should be so compelling that you should never use interact without some ...

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.