誰能解釋關於預計
之間
expect_out(buffer)
expect_out(0,string)
區別expect_out(緩衝)一般來說,我更喜歡使用
expect_out(buffer)
。
什麼是第二個,我們什麼時候可以使用它?
請問能解釋一下嗎?
誰能解釋關於預計
之間
expect_out(buffer)
expect_out(0,string)
區別expect_out(緩衝)一般來說,我更喜歡使用
expect_out(buffer)
。
什麼是第二個,我們什麼時候可以使用它?
請問能解釋一下嗎?
你可能想看看manpage:
我引用的相關部分:
在匹配模式(或EOF或full_buffer),任何匹配和以前無法比擬的輸出保存在變量
expect_out(buffer)
中。最多9個正則表達式子字符串匹配保存在變量expect_out(1,string)
到expect_out(9,string)
之間。如果在模式之前使用-indices
標誌,則10個字符串的開始和結束索引(以適合於lrange
的形式)存儲在變量expect_out(X,start)
和expect_out(X,end)
中,其中X是數字,對應於緩衝區中的子串位置。 0指的是匹配整個模式的字符串,併爲glob模式和正則表達式模式生成。例如,如果一個進程已經產生的"abcdefgh\n"
輸出,結果:expect "cd"是因爲如果下面的語句已執行:
set expect_out(0,string) cd set expect_out(buffer) abcd和
"efgh\n"
留在輸出緩衝器中。如果一個進程產生的輸出"abbbcabkkkka\n"
,結果:expect -indices -re "b(b*).*(k+)"是因爲如果下面的語句已執行:
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
你可以看到如何expect_out(0,string)
和expect_out(buffer)
包含不同的字符串。