我有两个已定义的函数,foo
它们bar
运行pexpect
时使用pexpect.spawn
. 接下来它只是使用 pexpect 发送一个 control-csendcontrol
并close
告诉正在运行的脚本关闭,然后终止该对象。程序运行后,对象仍在内存中运行,看起来像 control-c 和/或child.close
从未到达foo()
该脚本应该终止我生成的对象,但是我的if
逻辑bar(child)
似乎对在其中创建的对象没有任何影响foo()
这是代码:
def foo():
child = pexpect.spawn ('./script.sh')
return child
def bar(child):
if child.isalive():
child.sendcontrol('c')
child.close()
if child.isalive():
print 'Child did not exit gracefully.'
else:
print 'Child exited gracefully.'
a = foo()
bar(a)
该程序总是以打印“孩子优雅地退出”结束,但让我script.sh
在后台运行
此代码在这里有效:
def bar(child):
child.sendcontrol('c')
与创建的对象交互正常,foo()
但由于某种原因,我的其他具有if
逻辑的代码运行if
正确,但对我的对象没有做任何事情