Python 使用结构时减少远程命令的冗余度
使用时,我有时会从apt、git和其他程序中获得如下输出:Python 使用结构时减少远程命令的冗余度,python,terminal,fabric,tty,Python,Terminal,Fabric,Tty,使用时,我有时会从apt、git和其他程序中获得如下输出: [tfb@192.168.59.103:49369] out: Receiving objects: 6% (3318/55289) [tfb@192.168.59.103:49369] out: Receiving objects: 7% (3871/55289) [tfb@192.168.59.103:49369] out: Receiving objects: 8% (4424/55289) [tfb
[tfb@192.168.59.103:49369] out: Receiving objects: 6% (3318/55289)
[tfb@192.168.59.103:49369] out: Receiving objects: 7% (3871/55289)
[tfb@192.168.59.103:49369] out: Receiving objects: 8% (4424/55289)
[tfb@192.168.59.103:49369] out: Receiving objects: 9% (4977/55289)
[tfb@192.168.59.103:49369] out: Receiving objects: 10% (5529/55289)
[tfb@192.168.59.103:49369] out: Receiving objects: 11% (6082/55289)
[tfb@192.168.59.103:49369] out: Receiving objects: 12% (6635/55289)
[tfb@192.168.59.103:49369] out: Receiving objects: 13% (7188/55289)
我怀疑这与终端类型不正确支持回车有关。两个问题:
尝试使用以下行
import fabric
from fabric.api import env
fabric.state.output['running'] = False
env.output_prefix = False
FreeNode上的Via#fabric
那不是回车,你的申请正在发送
这些更新将被发送到终端。如果您
禁用pty,其他人不关心他们的环境,试图弄乱环境
不管怎样,把你的屏幕调高。如果可能,请查找“批处理模式”
在程序中键入选项或在结构中抑制输出
这是有道理的,因为Fabric的默认特性集声称通过行缓冲正确地支持回车。仅禁用pty似乎就解决了问题,例如
run('git clone foo ~/foo', pty=False)
修复了git、apt和大多数其他主要违规者的问题。有趣的是,当远程用户是root用户时,这可能不是一个问题,因为它拒绝创建PTY,也不是因为root用户使用的PTY有一些特殊属性,谢谢,但我想知道为什么会在PTY级别发生这种情况-我知道如何根据命令禁用它,但我正在运行的脚本有数千个命令,数百次都会发生这种情况,因为它是一个pty,而不是一个屏幕。但并非所有pty都会发生这种情况。如果我使用root用户而不是tfb用户重新运行这个命令,那么git不知何故意识到我不想要这种动态输出,只发送4-5行totalHm,对我可以看到的运行输出没有影响-可能只是隐藏了警告?