Regarding expect_out(buffer) in Expect
You might want to take a look at the manpage:
I will quote the relevant parts:
Upon matching a pattern (or eof or full_buffer), any matching and previously unmatched output is saved in the variable
expect_out(buffer)
. Up to 9 regexp substring matches are saved in the variablesexpect_out(1,string)
throughexpect_out(9,string)
. If the-indices
flag is used before a pattern, the starting and ending indices (in a form suitable forlrange
) of the 10 strings are stored in the variablesexpect_out(X,start)
andexpect_out(X,end)
where X is a digit, corresponds to the substring position in the buffer. 0 refers to strings which matched the entire pattern and is generated for glob patterns as well as regexp patterns. For example, if a process has produced output of"abcdefgh\n"
, the result of:expect "cd"is as if the following statements had executed:
set expect_out(0,string) cd set expect_out(buffer) abcdand
"efgh\n"
is left in the output buffer. If a process produced the output"abbbcabkkkka\n"
, the result of:expect -indices -re "b(b*).*(k+)"is as if the following statements had executed:
set expect_out(0,start) 1 set expect_out(0,end) 10 set expect_out(0,string) bbbcabkkkk set expect_out(1,start) 2 set expect_out(1,end) 3 set expect_out(1,string) bb set expect_out(2,start) 10 set expect_out(2,end) 10 set expect_out(2,string) k set expect_out(buffer) abbbcabkkkk
You can see how expect_out(0,string)
and expect_out(buffer)
contain different strings.
user2720323
Updated on June 14, 2022Comments
-
user2720323 almost 2 years
Can anyone explain the difference between
expect_out(buffer) expect_out(0,string)
Generally I prefer to use
expect_out(buffer)
.What is the second one and when can we use that?
Can any one explain please?