如何读取通过CLI设置的Fabric环境变量

2 投票
2 回答
1369 浏览
提问于 2025-04-18 05:01

我该如何读取我通过命令行工具设置的环境变量呢?比如说,我在当前工作目录下有一个空的 fabfile.py 文件,当我运行 fab --set password=foo,host_string=host1 之后,再打开一个 Python 控制台查看这些 fab 环境变量是否被设置 -

from fabric.api import env
print env.host_string 

我什么也没有得到?

2 个回答

0

你不能那样设置 host_string 这个变量。这个变量是在内部设置的,它会对传入的原始主机名进行一些字符串处理。如果你想指定一个特定的主机来使用,可以在调用你的 fab 任务时,使用一个标志来实现,像这样调用你的任务:

$ fab -H host1 --set password=foo sometask

如果你想把一个主机传给一个函数,你也可以这样做,但要使用不同的变量名。

3

根据文档,多个env变量需要用逗号分隔:

fab --set password=foo,host_string=host1

示例:

$ cat fabfile.py
from fabric.api import env

print env['hello']
print env['world']
$ fab test --set hello=1,world=2
1
2

撰写回答