gpt4 book ai didi

python - 在 python 中发出连续命令?

转载 作者:行者123 更新时间:2023-12-01 07:18:38 25 4
gpt4 key购买 nike

我正在尝试在 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)

最佳答案

每个 subprocess.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,这意味着您可以使用 POSIX-compliant shell commands 。在 Windows 上,这取决于使用什么 COMSPEC shell 环境。您可以通过设置 executable 来请求不同的 shell 可执行文件,例如可执行文件=/bin/bash

关于python - 在 python 中发出连续命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57824179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com