代码之家  ›  专栏  ›  技术社区  ›  Manoj Govindan

当用户最初输入错误的密码时,Fabric sudo()捕获错误的输出

  •  3
  • Manoj Govindan  · 技术社区  · 12 年前

    考虑以下内容 sudo 使用结构调用:

    def ls():
        output = sudo('ls /tmp/', user = 'someone', shell = True)
        print "Output:", output
    

    使用执行此操作 fab 并输入 错误的 密码第一次提示时 苏多 。您将看到一条错误消息,并且 苏多 会再次询问您的密码。第二次输入正确的密码。会议内容如下:

    $ fab ls
    [user@server] Executing task 'ls'
    [user@server] sudo: ls /tmp/
    [user@server] out: sudo password: 
    
    [user@server] out: Sorry, try again.
    [user@server] out: sudo password: 
    
    [user@server] out: hsperfdata_someone
    
    Output: Sorry, try again.
    
    Done.
    

    注意的值 output 是打印的第一条消息 苏多 当输入错误的密码时(“对不起,再试一次。”)。它不包含随后正确的输出(“hsperfdata_someone”)。

    我做错什么了吗?在这种情况下,是否有更好的方法来正确获取输出?

    1 回复  |  直到 12 年前
        1
  •  2
  •   Morgan    12 年前

    我想说这可能是一个需要报告的错误,但你可以看看 this section 尝试一些不同的组合。