2012-03-14 11 views
1

私は、イベントの文字列出力を確認するためのtcl/expectスクリプトを作成しています。以下は、私が持っているコード、私は$ CMDを送信するときフラッシングバッファーを期待してください

proc cli_detect_event {cmd value} { 
    cli_send "$cmd" 

    expect -timeout 3 $value { 
    } timeout fail 
} 

だから私は取得し、うまくいけば$値と一致する必要がありますイベントです。私は、expect_out(バッファ)が、このprocの後に再度使用されたときに捨てられるのを防ぐ方法があることを知りたいと思っていました。

+0

バッファの内容を別の変数に保存するだけでなく、必要に応じてregexを使って解析するのはなぜですか? –

+0

回答を確認してください! – Anonymous

答えて

0

ザ・は、このようにあなたのexpect_out(バッファ)があなたは自分の問題を修正する必要がスポーンID

proc cli_detect_event {cmd value spawnId } { 
    cli_send "$cmd" 

    expect -i $spawnId -timeout 3 $value { 
    } timeout fail 
} 

これに渡すことができます使用されることを保証するために、変数はそのspawn_id変数に関連付けられているバッファ期待しています。唯一のことは、プロセスを生成するときにspawn_idを確実に保存する必要があることです。

+0

あなたの素敵な! – Anonymous

0

AFAIKいいえ。

タイムアウトが発生した場合、バッファはnext expect節で検索できます。しかし、$値が一致した場合、$値そのものを含むこの時点までのすべてのものは、バッファから取り除かれ(そしてユーザーに出力されます)。

関連する問題