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 <[EMAIL PROTECTED]> wrote: >On Fri, 28 Mar 2008 08:12:36 -0700 (PDT), Paul Lemelle <[EMAIL PROTECTED]> >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 -- http://mail.python.org/mailman/listinfo/python-list