3

現在、テストスクリプトが多くの(3〜10)リモートコンピューター(SSHおよびいくつかのことを行う)に接続する必要があるプロジェクトで作業しています。pexpectを使い始めましたが、ボタンとしてはシンプルです。それは正常に動作します。

テスト中の通信を見たい。ログを画面にリダイレクトできることはわかっています。ただし、この場合、(別のコンピューターからの) ログが混在しています。私が望むのは、新しいスポーン オブジェクトごとに新しいターミナル ウィンドウ (またはコンソールなど) を開くことです。この場合、すべての通信を別のウィンドウで見ることができました。さらに、すべてのウィンドウで spawn.interact() の可能性を維持したいと思います。どうにかできる気がしますが、方法がわかりません。何らかのファイル ポインタ (またはパイプ) が何らかの方法で新しいウィンドウに渡される必要があると思います (?) (SecureCRT はこのようなことを知っています。コンソール ウィンドウにはタブがあり、それらに個別にアクセスできますが、これは商用製品です)。

または、問題をもっと簡単にさせてください。これを行うと、新しいウィンドウで新しいシェルを開くことができます。

p=Popen(["cygstart", "bash"])

スクリプト (親) からこのシェルに読み書きして、この新しいウィンドウで表示するにはどうすればよいですか?

あなたの一人が私を正しい方向に向けることができれば、本当に感謝しています。

そのような問題を見つけた人は誰もいなかったので、(Googleで)何を読むか、何を見つけるか教えていただければ十分です。環境はcygwinです。

前もって感謝します

br:drv

4

1 に答える 1

0

logfile パラメーターを使用してみましたか?

child = pexpect.spawn('some_command')
mylog = open('/tmp/mylog','w')
child.logfile = mylog

これにより、 spawn.interact() を呼び出した後に入力するコマンドを含む、ファイルへのすべての通信が自動的に記録されます。

詳細については、次の Web サイトを参照してください: http://pexpect.sourceforge.net/pexpect.html 「ログファイル」を検索して、関連するドキュメントを見つけてください。

于 2012-03-07T17:23:18.823 に答える