December 1994
Intermediate to advanced
606 pages
16h 7m
English
Frequently, different spawn ids may be watched for different patterns as well as a common pattern. For example, suppose you are waiting for pattern X from hostA or hostB, and pattern Y from hostC, or pattern Z from any of the three hosts. You might write:
expect {
−i "$hostA $hostB" X
−i "$hostC" Y
−i "$hostA $hostB $hostC" Z
}
The global variable any_spawn_id contains a predefined value that matches any spawn id named in the current expect command. It can be used to simplify the previous command to:
expect {
−i "$hostA $hostB" X
−i "$hostC" Y
−i "$any_spawn_id" Z
}
any_spawn_id can be used in a list as well. Suppose, you also want to watch one other process (hostD) but only for the common pattern Z. It could be done this way:
expect {
−i "$hostA $hostB" X
−i "$hostC" Y
−i "$any_spawn_id $hostD" Z
}