Fabric-Argumente werden mit sehr einfachem Parsing von Zeichenfolgen verstanden, daher müssen Sie beim Senden ein wenig vorsichtig sein.
Hier einige Beispiele für verschiedene Möglichkeiten, Argumente an die folgende Testfunktion zu übergeben:
@task
def test(*args, **kwargs):
print("args:", args)
print("named args:", kwargs)
$ fab "test:hello world"
('args:', ('hello world',))
('named args:', {})
$ fab "test:hello,world"
('args:', ('hello', 'world'))
('named args:', {})
$ fab "test:message=hello world"
('args:', ())
('named args:', {'message': 'hello world'})
$ fab "test:message=message \= hello\, world"
('args:', ())
('named args:', {'message': 'message = hello, world'})
Ich verwende hier ein doppeltes Anführungszeichen, um die Shell aus der Gleichung herauszunehmen, aber einfache Anführungszeichen sind für einige Plattformen möglicherweise besser. Beachten Sie auch die Escapezeichen für Zeichen, die Fabric als Trennzeichen betrachtet.
Weitere Details finden Sie in den Dokumenten:
http://docs.fabfile.org/en/1.14/usage/fab.html#per-task-arguments