如何在多进程中从python调用shell脚本?

时间:2013-02-27 11:40:32

标签: python shell python-2.7 subprocess

我想在后面运行一个shell脚本,它执行一项特定的工作,同时我会等待用户的输入来结束这项工作。我怎样才能做到这一点?这是我的示例代码:

from subprocess import call

cmd = "internals/applog.sh "
call([cmd])

raw_input("Press Y when you are done: ")

上面的代码首先执行call语句,并且只有在app log.sh结束后才会出现以下消息。

对此有何帮助?当用户输入y时,我该怎么做才能中止调用语句?

2 个答案:

答案 0 :(得分:2)

pid = Popen(["internals/applog.sh",])

while True:
    answer = raw_input("Press Y when you are done: ")
    if answer == 'Y':
        pid.kill()
        break

答案 1 :(得分:1)

call()等待命令完成,我认为你想要使用Popen代替:

from subprocess import Popen

Popen(["internals/applog.sh"])