如何迭代fabric ssh中的变量?
问题描述:
global count
count += 1
@task
def install(hosts, local_swift_config):
env.use_ssh_config = True
env.hosts = set_hosts(hosts)
execute(place_count)
def place_count():
sudo('echo {} > /home/user/some_count'.format(count))
count += 1
它不必是一个全球性的,什么是面料做到这一点的最佳方法是什么?
答
count = 0
@task
def install(hosts, local_swift_config):
env.use_ssh_config = True
env.hosts = set_hosts(hosts)
execute(place_count)
def place_count():
sudo('echo {} > /home/user/some_count'.format(count))
global count
count += 1
我已经在面料中的简单功能这项工作。你的问题是与python全局,而不是结构。
看到这个线程的详细信息,全局:Stacokverflow Python Globals
答
我决定不使用global
:
def counter():
env.count += 1
if env.count == 2:
env.count += 4
@task
def install(hosts):
env.count = 0
execute(counter)
print(env.count)
execute(counter)
print(env.count)
execute(counter)
print(env.count)
输出继电器:
1
6
7
Done.
谢谢,我决定不使用'global' ,而是使用'env'变量来代替。感谢您的高举。我以前从未使用过一个全球化的产品,并且正是在这种情况下,我会使用一切以牺牲良好实践为代价的产品。 – jmunsch