2

誰でも違いを説明できますか

expect_out(buffer)

expect_out(0,string)

一般的に私は使用することを好みますexpect_out(buffer)

2 つ目は何ですか。いつ使用できますか。

誰でも説明できますか?

4

1 に答える 1

8

マンページをご覧になることをお勧めします。

関連する部分を引用します:

パターン (または eof または full_buffer) に一致すると、一致する出力と以前に一致しなかった出力が変数に保存されますexpect_out(buffer)expect_out(1,string)を通じて、最大 9 つの正規表現部分文字列の一致が変数に保存されますexpect_out(9,string)。フラグがパターンの前に使用される場合、 10 個の文字列-indicesの開始インデックスと終了インデックス ( に適した形式lrange) が変数に格納され、expect_out(X,start)Xexpect_out(X,end)は数字であり、バッファ内の部分文字列の位置に対応します。0 は、パターン全体に一致した文字列を指し、glob パターンと正規表現パターンに対して生成されます。たとえば、プロセスが の出力を生成した場合"abcdefgh\n"、次の結果になります。

「cd」を期待する

次のステートメントが実行されたかのようです。

expect_out(0,string) cd を設定します
expect_out(buffer) abcd を設定します。

"efgh\n"出力バッファに残されます。プロセスが出力"abbbcabkkkka\n"を生成した場合、次の結果:

-indices -re "b(b*).*(k+)" を期待する

次のステートメントが実行されたかのようです。

期待_アウトを設定 (0,開始) 1
期待_アウトを設定 (0,終了) 10
expect_out を設定します (0,文字列) bbbcabkkkk
expect_out (1、開始) 2 を設定します。
expect_out(1,end) 3 を設定します。
expect_out(1,string) bb を設定します。
expect_out (2、開始) 10 を設定します。
期待_アウトを設定 (2,終了) 10
expect_out(2,string) k を設定します
expect_out(buffer) abbbcabkkkk を設定します。

expect_out(0,string)さまざまな文字列を含む方法を確認できexpect_out(buffer)ます。

于 2013-09-21T11:11:58.857 に答える