2012-03-15 14 views
0

は、私は次のコードを読んで、私はそれがどのように動作するか理解していない:TCLでこれがどのように機能するのでしょうか?

set accum "" 
set timeout 1 
    expect { 
     -re {.+} { 
      set accum "${accum}$expect_out(0,string)" 
      exp_continue 
     } 
    } 
set timeout 10 

を先頭に、我々はACCUMとタイムアウトを設定し、期待コマンドがあり、何かを一致させようか?その後、タイムアウトを10に設定し、コード全体がどのように動作するのでしょうか?それはどういう意味ですか?コードの時間まで

答えて

1

アウト(何の最後の試合の後に1秒)、それが何か一致する任意の時間(任意の文字列である - おそらく改行を除く - 理由-re {.+}の)それはaccumそれを変数に追加何かを期待して再開する(exp_continueは確かに魔法です)。

append accum $expect_out(0,string)を使用する方が効率的ですが、行われる方法はが間違っているではありません。

+0

これは追加するのですか?コードでは、私たちはセットを使用したので、次回は、累積されたrewrotenされます! –

+0

@ratzip:両方。変数 'foo'をその現在の値に' bar'を加えたものに*設定することによって 'set foo" $ {foo} bar "' * * 'bar'を変数' foo'に追加します。 – ruakh

関連する問題