Version 4 of How to access the result of a remote command in Expect

Updated 2002-02-05 20:21:12

For convience, I'll define the prompt and command here:

   set prompt "date"  ;# our remote command
   set prompt "% "    ;# our shell or whatever prompt we have

Now we can do useful things:

   expect $prompt     ;# wait for prompt
   send "date\r"      ;# send command
   expect $prompt\r\n ;# discard command echo

Finally, match and save the result and discard the next prompt:

   expect -re (.*)\r\n$prompt\r\n"

Now the result is in $expect_out(1,string).

If you want to read more about this, start on page 113 of Exploring Expect.

PS: If the result might be more than 2000 characters, you'll need to use the match_max command to increase the buffer space.