python fabric.contrib.files.contains 当文本存在于文件中时返回 False



我的代码看起来像这样:

    run("""echo "%s:x:" """ % (username))
    if not contains('/etc/passwd', '%s:x:' % (username)):
        run("useradd --shell /bin/bash --create-home %s" % (username), pty=True)

在第一次运行时,它工作正常并创建用户,但在第二次运行时,我收到一个错误,指出用户已经存在。

    [root@vbox1] out: tom:x:
    [root@vbox1] run: useradd --shell /bin/bash --create-home tom
    [root@vbox1] out: useradd: user 'tom' already exists

我尝试用 \ 转义 : ,但我得到相同的结果。我错过了什么明显的东西吗?

只是想回答我自己的问题以保持完整性。这是一个版本问题,并记录在最新版本中。

从文档:

在 1.0 版更改: 交换了文件名和文本参数的顺序,以与此模块中的其他函数保持一致。

相关内容

最新更新