在 python 中发出连续命令?
Issue consecutive commands in python?
我正在尝试调用 python 中的一组命令 (A、B、C)。这些命令设置了最终调用命令 X 的能力。但是,当命令 X 被调用时,它的行为就好像其他命令没有被调用一样。我认为这是因为它们是单独发布的,而不是在同一环境中同时发布的。有什么方法可以使用 Python 将它们全部发布到同一个打开的命令行。谢谢!
作为参考,实际命令会初始化 AutoSys 命令的执行。
我试过使用 os.sysetm(),与 subprocess.call
相同的问题
import subprocess
subprocess.call("Command A", shell=True)
subprocess.call("Command B", shell=True)
subprocess.call("Command C", shell=True)
subprocess.call("Command X", shell=True)
import subprocess
subprocess.call("Command A && Command B && Command C && Command X", shell=True)
这将在bash
中一个接一个地调用它们
每个 subprocess.call(..., shell=True)
调用都会创建一个带有 shell 进程的 new 子进程,并告知 shell 进程执行命令给出。然后 shell 进程再次被拆除并退出,并带走所有环境变量。
如果您必须 运行 它们都在一个单亲 shell 进程中,那么您需要使用 shell 语法来完成。例如。您可以使用 ;
来分隔命令:
subprocess.call("Command A; Command B; Command C; Command X", shell=True)
这 运行 顺序执行命令。任何命令成功或失败都没有关系,因为在 运行 执行下一个命令时不会考虑它们的退出状态。
您可以使用什么语法来控制命令的组合方式取决于您的平台。在 POSIX 系统上(Mac OS X 或 Linux)使用 /bin/sh
,这意味着您可以使用 POSIX-compliant shell commands。在 Windows 上取决于使用什么 COMSPEC
什么 shell 环境。您可以通过设置 executable
请求不同的 shell 可执行文件,例如executable=/bin/bash
.
我正在尝试调用 python 中的一组命令 (A、B、C)。这些命令设置了最终调用命令 X 的能力。但是,当命令 X 被调用时,它的行为就好像其他命令没有被调用一样。我认为这是因为它们是单独发布的,而不是在同一环境中同时发布的。有什么方法可以使用 Python 将它们全部发布到同一个打开的命令行。谢谢!
作为参考,实际命令会初始化 AutoSys 命令的执行。
我试过使用 os.sysetm(),与 subprocess.call
相同的问题import subprocess
subprocess.call("Command A", shell=True)
subprocess.call("Command B", shell=True)
subprocess.call("Command C", shell=True)
subprocess.call("Command X", shell=True)
import subprocess
subprocess.call("Command A && Command B && Command C && Command X", shell=True)
这将在bash
中一个接一个地调用它们每个 subprocess.call(..., shell=True)
调用都会创建一个带有 shell 进程的 new 子进程,并告知 shell 进程执行命令给出。然后 shell 进程再次被拆除并退出,并带走所有环境变量。
如果您必须 运行 它们都在一个单亲 shell 进程中,那么您需要使用 shell 语法来完成。例如。您可以使用 ;
来分隔命令:
subprocess.call("Command A; Command B; Command C; Command X", shell=True)
这 运行 顺序执行命令。任何命令成功或失败都没有关系,因为在 运行 执行下一个命令时不会考虑它们的退出状态。
您可以使用什么语法来控制命令的组合方式取决于您的平台。在 POSIX 系统上(Mac OS X 或 Linux)使用 /bin/sh
,这意味着您可以使用 POSIX-compliant shell commands。在 Windows 上取决于使用什么 COMSPEC
什么 shell 环境。您可以通过设置 executable
请求不同的 shell 可执行文件,例如executable=/bin/bash
.