2017-10-03 11 views
1

私はPexpectを使ってリモートファイアウォールと対話しています。インタラクションのすべては大丈夫ですが、私がchild.beforeで出力を取得しようとすると、私は欲しいものが得られません。Pexpectが正しく出力されない

child = pexpect.spawn('ssh [email protected]') 
child.sendline(password) 
child.expect('>') 
child.sendline('set cli pager off') 
child.expect('>') 
child.send('show system info') 
child.expect('>') 
child.before 

私はchild.before文で取得した出力が次である:これは私のコードです

'CLI設定\ rを\ X1B [Kadminは(アクティブ)名@'

だから、

[email protected](active)> set cli pager off 
[email protected](active)> show system info 

hostname: name 
ip-address: ip 
# ...There are more lines but these are omitted here... 

[email protected](active)> 

トン:ファイアウォール側で

が、これは私が(それは)(child.interactから直接コピーされる)を受信して​​います相互作用であります彼はファイアウォールとの相互作用は正しい。なぜ私は出力を得ることができませんか?私は間違って何をしていますか?あなたの助けのための

おかげで、あなたがchild.sendline('show system info')child.send('show system info')を変更する必要があり

マイク

+0

あなたは 'ssh'を使って直接接続しているので、期待するのではなく[Paramiko](http://www.paramiko.org/)の使用を検討しましたか?それはより速く、端末の問題を心配する必要はありません。 –

答えて

0

について。

関連する問題