3

考虑以下sudo使用 Fabric 的调用:

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

执行此操作fab并在第一次提示您时输入错误sudo的密码。您将看到一条错误消息,并sudo再次要求您输入密码。第二次输入正确的密码。会话看起来像这样:

$ 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打印的第一条消息sudo(“抱歉,重试。”)。它不包含随后的正确输出(“hsperfdata_someone”)。

难道我做错了什么?在这种情况下,有没有更好的方法来正确捕获输出?

4

1 回答 1

2

我会说这可能是一个需要报告的错误,但您可以查看本节以尝试一些不同的组合。

于 2012-08-06T16:32:08.667 回答