Fabric 运行() 输出是污垢

Fabric run() output is dirt

当我使用:

out = run("ls") 

我想要在 "out" 文件列表中。但是,我也得到垃圾。如何只出shell命令?

$ fab -p 111 -H server func
[server] Executing task 'func'
[server] run: ls
[server] out:
[server] out:
[server] out: MQSI 9.0.0.3
[server] out: /opt/IBM/mqsi/9.0.0.3
[server] out:
[server] out: /var/mqsi/odbc/odbc64.ini
[server] out: file1 file2 file3
[server] out:

MQSI 9.0.0.3
/opt/IBM/mqsi/9.0.0.3

/var/mqsi/odbc/odbc64.ini
file1 file2 file3

所以在 out 中,我得到了从 MQSIfile3 的所有文本。但我只需要 file1 file2 file3

可能不是面料问题。也许与服务器 shell.

有关

我试过使用不同的面料隐藏,但没有找到答案。

如果我理解正确,"trash" 你指的是 [=12= 的输出中存在的“\t”、“\r”和“\n”字符] 命令。我刚刚生成的示例如下所示:

>>>> out = run('ls')
>>>> print(out)
'nginx\t\t\t\tnginx.bak.20151206-2209.tar.gz\tnginx.bak.20151206-2258.tar.gz\tphp-fpm.conf.save\r\nnginx.bak.20151206-2047.tar.gz\r\nnginx.bak.20151206-2153.tar.gz\tnginx.bak.20151206-2226.tar.gz\tphp-fpm.conf\t\t\tsupervisord.conf\r\nnginx.bak.20151206-2206.tar.gz\tnginx.bak.20151206-2255.tar.gz\tphp-fpm.conf.default\t\tvarnish'

要将其转换为列表,您可以.split()它,例如:

>>> out.split()
['nginx', 'nginx.bak.20151206-2209.tar.gz', 'nginx.bak.20151206-2258.tar.gz', 'php-fpm.conf.save', 'nginx.bak.20151206-2047.tar.gz', 'nginx.bak.20151206-2153.tar.gz', 'nginx.bak.20151206-2226.tar.gz', 'php-fpm.conf', 'supervisord.conf', 'nginx.bak.20151206-2206.tar.gz', 'nginx.bak.20151206-2255.tar.gz', 'php-fpm.conf.default', 'varnish']