这里有个奇怪的问题。如果我使用fabric.operations.prompt
来获取变量的值,它似乎存储它就好了。但是,它让我的while循环感到困惑。
以下是手动设置变量的代码:
def test():
#var1 = fabric.operations.prompt("Var1:")
var1 = 3
var2 = 1
while (var1 > var2):
print("hi")
var2 = var2 + 1
print("var2: %s" % var2)
print("var1: %s" % var1)
毫不奇怪,输出是:
[me@host]$ fab test
hi
var2: 2
var1: 3
hi
var2: 3
var1: 3
Done.
但是,如果我将我的代码更改为:
def test():
var1 = fabric.operations.prompt("Var1:")
var2 = 1
while (var1 > var2):
print("hi")
var2 = var2 + 1
print("var2: %s" % var2)
print("var1: %s" % var1)
输出如下所示。我尽快抓住它,它执行得非常快。
var1: 3
hi
var2: 34567
var1: 3
hi
var2: 34568
var1: 3
hi
var2: 34569
var1: 3
hi
var2: 34570
^C
Stopped.
这个循环告诉我3 > 34570
。那不是真的。我认为这是特定于结构的,并且具有.prompt
操作。
这必须是变量,我无法手动设置。