나는 pexpect를 사용하여 스폰 개체를 생성하는 스크립트를 가지고 있습니다.Python Pexpect 스폰 개체
코드는 다음과 같습니다
self.rshcmd='rsh 192.X.X.X'
self.pipe1 = pexpect.spawn(command=self.rshcmd, logfile=sys.stdout,maxread=512)
을 지금이 들어갈 후, 나는 >
입니다 얻을 그리고 지금은 su
를 전송 한 후 암호를 제공하여 SU이되는 프롬프트에 대한 기대 . 지금 예상으로 내 메시지가 #
내가 telnet 192.168.1.1
을 보내이 라우터에 텔넷 192.168.1.1
입니다 PC (192.X.X.X) 양산이에 연결된 라우터가된다. 이 라우터에서 끝나면 텔넷 세션에서 빠져 나가고 싶습니다.
그래서 exit
을 보내고 #
을 기대합니다. 스폰 된 PC의 루트로 돌아갈 예정입니다. 그러나 내가 보는 것은 사실 내가 프롬프트로 <
을 얻고 있다는 것입니다.
어쨌든 "exit"를 두 번 보내고 있습니다. 하나는 텔넷에서 나를 빼앗아 다른 사람은 나를 뿌리에서 빼앗아 간다. 나는 파이프가 씻겨 나가는 것이 아니라고 생각하고 오래된 쌓인 명령을 보내 게됩니다.
파이프의 모든 이전 명령을 플러시 할 수있는 방법이 있습니까? 문서에서
는 세척 기능이있다,하지만 아무것도하지 않는 것 같다
flush(self)
This does nothing. It is here to support the interface for a
File-like object.
pexpect는 명령을 두 번 보내지 않습니다. 'exit'를 보내기 전에 텔넷 연결이 닫힐 수 있습니까? –