我的fabfile.py包含以下内容:
# simple function - no arguments and no returns
def hello():
print "Hello World!"
# function with default argument
def goodbye(name='Anonymous'):
print "Buh-bye world!", name
# function that does nothing
def nothingHere():
pass
# function that take arguments and returns something
def sum(x=0, y=0):
sum=x+y
return sum
对面料不熟悉。现在为了清楚和理解,我想了解在运行fab命令时是否有办法从上面的 sum()函数中收集返回值。
fab sum:x = 10,y = 20
那么如何查看/收集上述命令的输出?
答案 0 :(得分:1)
了解Fabric的主要用途:在远程服务器上执行任务非常重要。返回值以此为中心。
以下是脚本的简化版本,用于说明Fabric任务的返回值:
from fabric.api import execute
# function that take arguments and returns something
def sum(x=0, y=0):
sum = x + y
return sum
# using execute to simulate the `fab <command>` command-line usage
result = execute(sum, x=5, y=10)
print(result)
结果是一个字典,由执行任务的主机键入:
{'<local-only>': 15}
如果您在多个远程服务器上运行此任务,则看起来像这样:
result = execute(sum, x=5, y=10, hosts=['host-1', 'host-2'])
print(result)
{'host-1': 15, 'host-2': 15}
因此,如果您尝试将此sum()
函数用作可能相互调用的更广泛函数的一部分,那么您只需要从result
访问正确/所需的键。值。