在不影响操作系统环境的情况下执行shell命令

问题描述 投票:0回答:1

我使用CloudFoundry CLI。它允许执行诸如推送应用程序,创建服务等工作。但是,在执行命令时,它使用凭据,即当前登录用户的空格。

我使用所有这样的shell命令

def exec_cmd(*args, **kwargs):
    proc = subprocess.run(args, check=True, **kwargs)
    return proc.stdout.decode('utf-8').strip() if kwargs.get('capture_output', False) else None

然后执行exec_cmd('cf', 'curl' ...)之类的操作。

但是执行push等操作时,它使用cf的环境,例如,我尝试更改space会在所有终端会话中更改它。

如何在不影响全局的情况下独立运行它? (之所以需要它,是因为常规的python API不如CF CLI完整,使用起来不太方便)

python cloudfoundry
1个回答
0
投票

您可以将$CF_HOME设置为具有用于凭据/空格等的单独文件。>>

从文档https://docs.cloudfoundry.org/cf-cli/getting-started.html

登录后,cf CLI保存一个config.json文件,其中包含您的API端点,组织,空间值和访问令牌。

如果更改这些设置,则将相应地更新config.json文件。

默认情况下,config.json位于〜/ .cf目录中。您可以使用CF_HOME环境变量重定位config.json文件。

© www.soinside.com 2019 - 2024. All rights reserved.