【发布时间】:2014-04-09 20:33:06
【问题描述】:
我正在尝试学习一点关于 pexpect 的知识:特别是我正在尝试将文件从我的笔记本电脑复制到远程服务器。 我遇到了一种奇怪的行为:如果我逐行编写,或多或少相同的代码可以工作,但如果我将它作为脚本运行则不会。 这是我一行一行写的:
child = pexpect.spawn('scp pathdir/file.ext username@hostname:pathdir')
r=child.expect ('assword:')
r
它返回 0,我用密码完成工作
child.sendline ('password')
当我对服务器执行 ssh 时,我在那里找到了我的文件。所以我把所有的步骤都收集在一个脚本中;它没有错误地退出,但它没有被复制的文件......为什么?但更重要的是,我该如何解决这个问题?
这是脚本:
child = pexpect.spawn('scp pathdir/file.ext username@hostname:pathdir')
r=child.expect ('assword:')
print r
if r==0:
child.sendline ('password')
child.close()
我不确定 pexpect 是如何工作的,所以我打印 r 以确保它是 0。确实如此。
【问题讨论】:
-
你是从
file.ext所在的文件夹启动脚本吗? -
是的:脚本和file.ext在同一个目录下。但是问题需要编辑:file.ext 给出了它的完整路径。
-
遇到了同样的问题。你现在解决了吗?
-
没有。尚未找到任何解决方案。