gpt4 book ai didi

python - 无法将变量传递给 python 中的 bash 命令

转载 作者:太空宇宙 更新时间:2023-11-04 04:11:55 24 4
gpt4 key购买 nike

我正在尝试将 python 变量传递给 bash 命令,如下所示:

subscriptionId = "xxxxx"
command = " az account show -s $subscriptionId"
subprocess.check_output(command)

我收到以下错误:

error : az account show: error: argument --subscription/-s: expected one argument

最佳答案

分配像 subscriptionId = "xxxxx" 这样的 Python 变量并不会神奇地将其放置在您的环境中,更不用说将其传递给子进程了。您需要自己进行插值:

command = f"az account show -s {subscriptionId}"

如果您确实想要使用环境变量,请添加所需的变量并启用 shell 扩展:

subscriptionId = ...
env = os.environ.copy()
env['subscriptionId'] = subscriptionId
command = "az account show -s ${subscriptionId}"
subprocess.check_output(command, env=env, shell=True)

或者,您可以扰乱自己的进程环境:

subscriptionId = ...
os.environ['subscriptionId'] = subscriptionId
command = "az account show -s ${subscriptionId}"
subprocess.check_output(command, shell=True)

在我看来,不建议使用这些选项,因为它们会引发 shell=True 带来的所有安全问题,同时不会为您提供真正的优势。

关于python - 无法将变量传递给 python 中的 bash 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56160913/

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