我正在尝试使用Python通过一个进程执行多个命令,但它不起作用。当第一个命令完成时,它应该继续下一个,但在这种情况下,它会停止。如果我输入exit,则执行下一个命令。
如何在同一进程中让命令在彼此之后执行。这是一个不好的例子,但是想要让它变得容易。
import subprocess
CMD = "ls -l"
INIT = "sh"
if __name__ == '__main__':
p = subprocess.Popen(INIT, shell=True, stdout=subprocess.PIPE)
p.wait()
print(p.returncode)
p = subprocess.call(CMD, shell=True)'
答案 0 :(得分:0)
在您输入'退出'之前,sh
命令尚未完成。在交互式shell中打开。 Windows等效项为cmd
,在输入exit
时也会退出。要在没有用户输入的情况下运行多个命令,必须运行不需要用户输入的命令。
此外,除非您阅读另一端,否则不应将输出发送到管道。如果管道已满,子进程将挂起,等待它被清空。使用/ dev / null忽略输出。