デバイスの起動シーケンスを解析しようとしています。 デバイスのシリアルポートに接続するターミナルサーバーにtelnetを使って接続します。インタラクティブな解析に失敗しましたか?
import pexpect
child = pexpect.spawn ('telnet x.x.x.x yyyy')
child.expect ('login: ')
child.sendline ('anonymous')
child.expect ('Password:')
child.sendline ('[email protected]')
次は失敗します:
import pexpect
child = pexpect.spawn ('telnet x.x.x.x yyyy')
child.expect ('Hit [Enter] to boot immediately, or space bar for command prompt.', timeout=300)
child.send ('\x20')
print child.before
私の目的は、時にデバイスが起動され、端末を意味し、以下のスクリプトが動作し、中に私を記録します
は、スクリプト& sendlineに応答し、それは、スクロールの途中で私の予想される文字列を使って行指向の出力を行います。
上記のスクリプトは一致しません。 さらにデバッグすると、 "child.before"はログインプロンプトの前の最後の行を表示します。失敗の原因は何ですか?
'['と ']'はREにとって特別な意味を持ちます。 'Hit [Enter]'を 'Hit \\ [Enter]'に置き換えてみてください。 – pynexj
child.expect( 'すぐに起動するには[Enter \]を押す\、コマンドプロンプトにはスペースバーを入力してください。'、300) –