2012-01-22 1 views

ответ

174

Ткань использует следующий синтаксис для передачи аргументов задач:

fab task:'hello world' 
fab task:something='hello' 
fab task:foo=99,bar=True 
fab task:foo,bar 

Вы можете прочитать об этом в Fabric docs.

+7

Котировки не нужны; все аргументы являются строками: «поскольку этот процесс включает в себя синтаксический анализ строк, все значения будут представлены как строки Python, поэтому планируйте их соответствующим образом. (Мы надеемся улучшить это в будущих версиях Fabric, если можно найти интуитивный синтаксис.)« –

+2

Котировки вокруг 'hello world' кажутся необходимыми, хотя? – PEZ

+1

@PEZ Если это правда, в этом примере, вероятно, необходимы кавычки, потому что анализатор командной строки терминала или ткани увидит пространство и подумает, что это конец всему для этой задачи, и что «мир» был новой задачей. –

0

Вам необходимо передать все переменные Python в виде строк, особенно если вы используете подпроцесс для запуска скриптов, или вы получите сообщение об ошибке. Вам нужно будет преобразовать переменные обратно в типы int/boolean отдельно.

def print_this(var): 
    print str(var) 

fab print_this:'hello world' 
fab print_this='hello' 
fab print_this:'99' 
fab print_this='True'