Python 使用结构时减少远程命令的冗余度

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

使用时,我有时会从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@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,对我可以看到的运行输出没有影响-可能只是隐藏了警告?