在python中发出连续命令?
我试图用python调用一组命令(a、B、C)。这些命令设置了最终调用命令X的能力。但是,当调用命令X时,它的行为就好像其他命令没有被调用一样。我相信这是因为它们是分开发行的,而不是在同一环境下同时发行的。有没有办法使用Python将它们全部发布到同一个open命令行。谢谢 作为参考,real命令初始化AutoSys命令的执行 我尝试过使用os.sysetm(),问题与subprocess.call相同在python中发出连续命令?,python,python-2.7,command-line,subprocess,command,Python,Python 2.7,Command Line,Subprocess,Command,我试图用python调用一组命令(a、B、C)。这些命令设置了最终调用命令X的能力。但是,当调用命令X时,它的行为就好像其他命令没有被调用一样。我相信这是因为它们是分开发行的,而不是在同一环境下同时发行的。有没有办法使用Python将它们全部发布到同一个open命令行。谢谢 作为参考,real命令初始化AutoSys命令的执行 我尝试过使用os.sysetm(),问题与subprocess.call相同 导入子流程 调用(“命令A”,shell=True) 调用(“命令B”,shell=True
导入子流程
调用(“命令A”,shell=True)
调用(“命令B”,shell=True)
调用(“命令C”,shell=True)
调用(“命令X”,shell=True)
这将在bash中一个接一个地调用每个子进程。call(…,shell=True)
调用使用shell进程创建一个新的子进程,并告知该shell进程执行给定的命令。然后,shell进程再次被拆开并退出,同时带上任何环境变量
如果必须在一个单亲shell进程中运行它们,则需要使用shell语法来执行。例如,您可以使用代码>以分离命令:
subprocess.call("Command A; Command B; Command C; Command X", shell=True)
这将按顺序运行命令。任何命令成功或失败都无关紧要,因为在运行下一个命令时,不会考虑它们的退出状态
确切地说,您可以使用什么语法来控制命令的组合方式取决于您的平台。在POSIX系统(Mac OS X或Linux)上使用/bin/sh
,这意味着您可以使用。在Windows上,它取决于所使用的shell环境。您可以通过设置executable
请求不同的shell可执行文件,例如executable=/bin/bash
subprocess.call("Command A; Command B; Command C; Command X", shell=True)