The spawn Command
While interacting with a person is useful, most of the time Expect is used to interact with programs. You have already seen enough to get a feeling for send
and expect
. There is more to learn about them, but now I want to explore the spawn
command.
The spawn
command starts another program. A running program is known as a process. Expect is flexible and will view humans as processes too. This allows you to use the same commands for both humans and processes. The only difference is that processes have to be spawned first.[17]
The first argument of the spawn
command is the name of a program to start. The remaining arguments are passed to the program. For example:
spawn ftp ftp.uu.net
This command spawns an ftp
process. ftp
sees ftp.uu.net
as its argument. This directs ftp
to open a connection to that host just as if the command "ftp ftp.uu.net
" had been typed to the shell. You can now send commands using send
and read prompts and responses using expect
.
It is always a good idea to wait for prompts before sending any information. If you do not wait, the program might not be ready to listen and could conceivably miss your commands. I will show examples of this in a later chapter. For now, play it safe and wait for the prompt.
ftp
begins by asking for a name and password. ftp.uu.net
is a great place for retrieving things—they let anyone use their anonymous ftp
service.
They ask for identification (you must enter your e-mail address at the password prompt) but it is primarily ...
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.