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
expect. There is more to learn about them, but now I want to explore 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.
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.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
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
. They ask for identification (you must enter your e-mail address at the password prompt) but it is primarily ...