Pexpect question.
Paul Lemelle
Plemelle at comcast.net
Wed Apr 2 21:57:31 EDT 2008
Jorgen,
Thanks for your reply.
The ssh function is just a small part of what I would like to
accomplish. And yes, chk is undefined, I was trying to figure out why
control was not being returned from the sshcon funciton.
I looked for pexpect doucment on http://www.noah.org/wiki/Pexpect, but
the documentaiton link appear to be broken. Could you recommend
another site?
Thanks,
Paul
On 30 Mar 2008 21:39:46 GMT, Jorgen Grahn <grahn+nntp at snipabacken.se>
wrote:
>On Fri, 28 Mar 2008 08:12:36 -0700 (PDT), Paul Lemelle <pdl5000 at yahoo.com> wrote:
>> I am trying separate a script that users pexpect into
>> various functions within the same expect session. The
>> problem is that the function does not return control
>> back Main.
>
>I do not understand what that sentence means.
>
>> Any insight into this issue would be
>> greatly appreciated. Below is sample code of the
>> problem.
>
>First, what is the purpose of this program? It seems to be a more
>tedious way to get an ssh login to some Unix host. Ssh can be
>configured to do many things; maybe you do not need Python at all?
>
>Second, it will fail as soon as you use the undefined object 'chk'.
>
>Third, if "not return control back Main" means "sshcon() does not
>return", then it is by design. You call go.interact(), which hands
>over control to the user until he types an escape sequence. See the
>pexpect documentation.
>
>Fourth, sshcon() does not handle the full dialogue ssh can give you.
>If you get "are you sure you want to connect" etc, you will hang until
>pexpect.TIMEOUT is thrown.
>
>I have reformatted the source code to be more readable:
>
>> import pexpect
>>
>> def sshcon(host, password):
>> go = pexpect.spawn ('/usr/bin/ssh -l root %s ' % host)
>> go.expect ('Password: ')
>> go.sendline (password)
>> go.interact()
>>
>> #get node info for both clusters.
>> C1_node = raw_input("Enter the ip address for node on cluster 1: ")
>> C1_pass = raw_input("Enter the password for the node on cluster 1: ")
>>
>> sshcon(C1_node, C1_pass)
>>
>> #go to the path
>> chk.expect('# ')
>> chk.sendline('ls')
>>
>> chk.interact()
>
>/Jorgen
More information about the Python-list
mailing list