pexpect を使用してスポーン オブジェクトを作成するスクリプトがあります。
コードは次のようになります。
self.rshcmd='rsh 192.X.X.X'
self.pipe1 = pexpect.spawn(command=self.rshcmd, logfile=sys.stdout,maxread=512)
これに入った後、私が得るプロンプトは>
そして今、私su
はパスワードを送信してから与えることでsuになります。期待どおりのプロンプトが表示されるようになりました#
この生成された PC (192.XXX) にルーターが接続されています。192.168.1.1
を送信して、このルーターに telnet で接続しますtelnet 192.168.1.1
。このルーターを使い終わったら、telnet セッションを終了したいと思います。
そのため、送信して、生成された PC のルートに戻ることをexit
期待します。#
しかし、私が見ているのは、実際に<
プロンプトとして取得していることです。
どういうわけか、「exit」を2回送信しています。1 つは telnet から私を引き離し、もう 1 つは root から私を引き離します。パイプがフラッシュされていないと思います。スタックされた古いコマンドが送信されています。
パイプ内の古いコマンドをすべてフラッシュする方法はありますか?
ドキュメントにはフラッシュ機能がありますが、何もしないようです:
flush(self)
This does nothing. It is here to support the interface for a
File-like object.