Pexpect echoes twice for each read

Sriram Rajan rajan.sriram at gmail.com
Tue Sep 9 19:01:09 EDT 2008


For some reason, Using pexpect causes my output to echo twice when I
connect from my MAC Darwin (10.4) to Linux (CentOS release 5 ):

The program:
---------------------
#!/usr/bin/python
# Automatic scp to remote host
# Input 1 : filename
# Input 2 : destination folder
# Input 3 : hostname

import pexpect
import sys,re

ssh_cmd = "ssh " + sys.argv[3]
ssh_handle = pexpect.spawn (ssh_cmd)
ssh_handle.logfile = sys.stdout
PROMPT = "\$\ $"

try:
  ssh_handle.expect(PROMPT)

  ssh_handle.sendline ("scp "+ sys.argv[1] +" root at 192.168.1.254:" +
sys.argv[2] )

  ssh_handle.expect("password:")

  ssh_handle.sendline(" ")

  ssh_handle.expect(PROMPT)

except pexpect.TIMEOUT:
    ssh_handle.logfile.write("\n Pexpect timeout !!\n")
    sys.exit(1)
except KeyboardInterrupt:
    ssh_handle.logfile.write("\n User interrupt!\n")
    sys.exit(2)
ssh_handle.close()

Output:
-----------
$ python pexpect_test.py replace_line_break.sh /tmp/ 10.5.254.18
Last login: Tue Sep  9 15:45:05 2008 from sriram-macbook.dhcp.2wire.com
$ scp replace_line_break.sh root at 192.168.1.254:/tmp/
scp replace_line_break.sh root at 192.168.1.254:/tmp/
root at 192.168.1.254's password:

replace_line_break.sh                         100%  296     0.3KB/s   00:00
$ $



More information about the Python-list mailing list